第17章 灵活却难以理解——指针进阶
前面章节中,读者已经领会到了指针的强大功用。实际上,指针所能做的不仅仅是向函数传递变量的地址,本章将讨论一些指针进阶的知识,如指针数组、函数指针等。套用一句曾经很流行的话:欢迎走进指针这片“雷区”。
本章包含的知识点有:
·指针与数组
·指针与结构体
·指针与函数
17.1 指针与数组
在第13章中已经介绍过“数组名指针”的概念,可以将数组名作为指针参数传递给函数。本节将深入讲述数组名指针、数组元素的表示形式和指针数组等内容。
17.1.1 数组名指针
从第13章中可归纳出以下结论:数组名是一种常指针(不能修改),其值等于数组占据内存单元的首地址,但其类型取决于数组的维数。
对三维数组A而言,有下面的关系成立:
A=&A[0]
;
A+1=&A[1]
;
…
A[0]=&A[0][0]
;
A[0]+1=&
(A[1][0]
);
…
A[0][0]=&A[0][0][0]
;
A[0][0]+1=&A[0][0][1]
;
…