- 5
- 0
- 约6千字
- 约 57页
- 2016-12-20 发布于重庆
- 举报
若有p=a(p指向数组a),则: p++(或p+=1),表示p指向下一元素。 *p++与*(p++)等价。同样优先级,结合方向为自右向左。 *(p++) 与*(++p)。 前者是先取*p的值,后使p值加1,相当于a[i++];后者是先使p加1,再取*p,相当于a[++i]。 (*p)++表示p所指向的元素值加1,而非指针值加1。 例:输出a数组10个元素。 …… p=a; while(pa+10) { printf(“%d”,*p); p++; } …… …… p=a; while(pa+10) printf(“%d”,*p++); …… 等价 4、指针变量与动态存储分配 几个相关函数: malloc(size) 分配1个长度为size的连续空间,返回值为一指针,其值是该分配区域的起始地址。如不成功,返回0。 calloc(n,size) 分配n个长度为size的连续空间。其余同上。 free(ptr) 释放ptr所指向的空间(ptr必须是由上述函数得到的) 5、数组名及指向数组的指针变量 作函数参数 数组名可以作为函数的形参和实参。当用数组名作参数时,如果形参数组中各元素的值发生变化,实参数组元素的值随之变化。因为二者共占同一段内存空间。 当指向数组的指针变量时作函数参数时,也可得到同样的结果。 【例10.5】用二分查找法(折半查找)从一个已排好序的数列中查找
原创力文档

文档评论(0)