C 指针精要
C 指针精要 http://blog.csdn.net/lwbeyond/article/details/6180640 一. 解读复杂指针声明 要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样. 记住原则: 从变量名处起,根据运算符优先级结合,一步一步分析. int p; /* 这是一个普通的整型变量 */ int *p; /* 首先从P 处开始,先与*结合,所以说明P 是一个指针, 然后再与int 结合,说明指针所指向的内容的类型为int 型. 所以P 是一个返回整型数据的指针 */ int p[3]; /* 首先从P 处开始,先与[]结合,说明P 是一个数组, 然后与int 结合,说明数组里的元素是整型的. 所以P 是一个由整型数据组成的数组 */ int *p[3]; /* 首先从P 处开始,先与[]结合,因为其优先级比*高,所以P 是一个数组, 然后再与*结合,说明数组里的元素是指针类型, 然后再与int 结合,说明指针所指向的内容的类型是整型的 所以P 是一个由返回整型数据的指针所组成的数组 */ int (*p)[3]; /* 首先从P 处开始,先与*结合,说明P 是一个指针 然后再与[]结合,说明指针所指向的内容是一个数组 然后再与int 结合,说明数组里的元素是整型的. 所以P