《c语言程序设计教学资料》第11章-指针与数组.ppt
《《c语言程序设计教学资料》第11章-指针与数组.ppt》由会员分享,可在线阅读,更多相关《《c语言程序设计教学资料》第11章-指针与数组.ppt(43页珍藏版)》请在三一办公上搜索。
1、第11章 数组与指针,数组与指针,指针和一维数组指针和二维数组动态内存分配函数,数组与指针,一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。数组元素的指针就是数组元素的地址。,可以用一个指针变量指向一个数组元素 int a10=1,3,5,7,9,11,13,15,17,19;int*p;p=,等价于p=a;,等价于int*p=a;或int*p=,注意:数组名a不代表整个数组,只代表数组首元素的地址。p=a;的作用是“把a数组的首元素的地址赋给指针变量p”,而不
2、是“把数组a各元素的值赋给p”。,指针与一维数组,在引用数组元素时指针的运算,在指针指向数组元素时,允许以下运算:加一个整数(用+或+=),如p+1 减一个整数(用-或-=),如p-1 自加运算,如p+,+p 自减运算,如p-,-p 两个指针相减,如p1-p2(只有p1和p2都指向同一数组中的元素时才有意义),如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素,p-1指向同一数组中的上一个元素。例:float a10,*p=a;假设a0的地址为2000,则:p的值为2000 p+1的值为2004 p-1的值为1996,越界,如果的初值为&a0,则p+i和a+i就是数组元素
3、ai的地址,或者说,它们指向a数组序号为i的元素*(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即ai。,p,p+1,a+1,p+i,a+i,p+9,a+9,*(p+i),通过指针引用数组元素,引用一个数组元素,可以用:()下标法,如ai形式;()指针法,如*(a+i)或*(p+i);其中a是数组名,p是指向数组元素的指针变量,其初值p=a。,例:输出数组中的全部元素。,假设int a5,要输出各元素的值有四种方法:,(1)下标法。,(2)通过数组名计算数组元素地址,找出元素的值。,(3)用指针变量指向数组元素。,虽然p和a的值都是数组的首地址,但是数组名a不能执行增1或减1操作。
4、因为数组名是指针常量,代表一个地址常量,其值不能改变;指针是变量,其值可以改变。,3种方法的比较:第(1)和第(2)种方法执行效率相同编译系统是将ai转换为*(a+i)处理的,即先计算元素地址。因此用第(1)和第(2)种方法找数组元素费时较多。第(3)种方法比第(1)、第(2)种方法快用指针变量直接指向元素,不必每次都重新计算地址,像p+这样的自加操作是比较快的这种有规律地改变地址值(p+)能大大提高执行效率 用下标法比较直观,能直接知道是第几个元素。用地址法或指针变量的方法不直观,难以很快地判断出当前处理的是哪一个元素。,(4)指针的下标法,数组名和指针变量作函数参数,指针与二维数组,二维数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计教学资料 语言程序设计 教学 资料 11 指针 数组
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5896104.html