一、基本概念
1.指针数组:实质上是一个数组,数组中的元素是指针;
2.数组指针:实质上是一个指针,指针指向的值为数组;
3.函数指针:实质上是一个指针,指针指向的值为函数;
二、表达式
1.指针数组:如int *p[5] p含义为容量为5的int*类型的数组
2.数组指针:如int(*p)[5] p的含义为指向一个容量为5的int型数组的指针
3.函数指针:如int (*p)(int ) p的含义为指向一个输入参数为int型返回一个int型的函数的指针
三、如何构成不同的表达式
1.优先级:当两个符号在一起时决定哪个符号先运行:[ ]的优先级大于*,且()为强制结合
要判断不同的表达式的意义:
第一步:找核心,即找到定义的符号是哪个,如前面的p为表达式的核心;
第二步:找结合,找到离核心最近的符号;
第三步:向外扩展。
如:int *p[5],先找到表达式的核心,即为p;然后再进行结合,因为[ ]的优先级高于*,则先和[ ]结合,即p是有5个元素的数组,再和int*结合,则数组的类型为int*。