[其它技巧]C++06指针.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[其它技巧]C06指针

*;第6章 指针; 程序中定义的每一个变量,系统根据变量类型分配一定长度内存单元。 例如,C++编译系统一般为整型变量分配4个字节,为字符型变量分配1个字节。 内存区的每一个字节有一个编号,这就是“地址” 。;注意:内存单元的地址与内存单元的内容的区别。;直接存取方式:按变量名存取变量值的方式。 直接将数3送到整型变量i所标识的单元中。 i = 3;间接存取方式:将3送到指针变量i_pointer所指向的单元(这就是变量i所标识的单元)中。 *i_pointer = 3;*;*;6.2 变量与指针;*;*;*;*;思考1: 输入a、b、c三个整数,由大到小排序 (用指针变量处理)。(不改变a,b,c的值);*;*;*;*;指针变量可以指向数组元素(把某一元素的地址放到一个指针变量中)。 int a[10]; //定义10个元素的整型数组a int *p; //定义一个基类型为整型的指针变量p p=a[0]; //将a[0]的地址赋给指针变量p,使p指向a[0];6.3 数组与指针 6.3.1 指向一维数组元素的指针;说明: (1) p+i和a+i就是a[i]的地址; (2)*(p+i)或*(a+i)是p+i或a+i 所指向的数组元素,即a[i]。 (3)引用一个数组元素,可用以下方法: ① 下标法,如a[ i ]形式; ② 指针法,如*(a+i)或 *(p+i)。;例: #include iostream using namespace std; int main() { int a[ ] ={1,2,3}; int *p; p = a; int i; [输出a数组中各值;] return 0; };方法三:for(i = 0; i 3; i++) cout *(p+i) endl;;其中,采用方法六可以提高执行效率。;指针变量的算术运算 如果先使p指向数组a的首元素(即p=a),则: (1) p++(或p+=1)。使p指向下一元素,即a[1]。如果用*p,得到下一个元素a[1]的值; 例如: int a[3] = {1,2,3}; int *p = a; p++; cout *p endl; ; (2) *p++与*++p作用不同 *p++是先取*p的值,再使p++; *++p是先使p++,再取*p的值。 例如: int a[3] = {1,2,3}; int *p = a; cout *p++ endl; cout *++p endl; ; (3) (*p)++表示p所指向的元素值加1。 例如: int a[3] = {1,5,9}; int *p = a; cout (*p)++ endl; ;*;*;*;6.3.2 用指针变量作函数参数接收??组地址;例6.6 将10个整数按由小到大的顺序排列。;*;实际上函数调用时并不存在一个占有存储空间的形参数组,只有指针变量。 实参与形参的结合,有以下4种形式: 实 参 形 参 数组名 数组名 数组名 指针变量 指针变量 数组名 指针变量 指针变量;*;*;*;*;1. 多维数组元素的地址 设有一个二维数组a,它有3行4列。它的定义为 int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};;*;*;*;*;*;例6.8 输出二维数组任意一行任意一列元素的值。(用指向一维数组的指针变量实现);*;*;*;*;*;*;*;*;*;*;*;*;*;*;若干字符串按字母顺序(由小到大)输出。(不改变字符数组中字符串的位置);*;*;int *….*p ; 实际上在程序中很少超过二级间址。;*;*;6.8 有关指针的数据类型和指针运算的小结;*;*;p=NULL; //指针变量为空值 在iostream头文件中定义: #define NULL 0 NULL代表整数0,但系统中没有地址为0的单元,因此指针变量不指向任何有效单元。 注意,p的值等于NULL和p未被赋值是两个不同的概念。 ;*;*;总结: 使用指针的优点: ①提高程序效率;②调用函数时,能在被调用函数中改变主调函数中多个变量的值;③可以实现动态存储分配。 但是,指针使用太灵活,对熟练的程序员来说,可以利用它编写出颇有特色、质量优良的程序,实现许

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档