关于指针的问题和解决方法
1. 指针类型分析
int p; //这是一个普通的整型变量。
int *p; //首先从p开始,先与*结合,所有p是一个指针,然后再与int结合,说明说明指针指向的内容的类型为int
int p[3]; //p先与[]结合,说明p是一个数组,然后与int结合,说明数组里的元素是整型的。
int *p[3]; //p先与[]结合,因为其优先级比*高,所以p是一个数组,然后再与*结合,说明数组里的元素是指针类型,最后与int结合,说明指针指向的内容的类型是整型。
int (*p)[3]; //首先p与*结合,说明p是一个指针,然后再与[]结合,说明指针指向的内容是数组,然后与int结合,说明数组里的类型是整型的。
int **p; //首先p与*结合,说明p是一个指针,然后再与*结合,说明指针所指向的元素是指针,然后再与int结合,说明该指针所指向的元素是整型数据。
int p(int); // 首先p与()结合,说明p是一个函数,然后进入()里分析,说明该函数有一个整形变量的参数,再与外面的int结合,说明函数的返回值是一个整型数据。
int (*p)(int); // p先与*结合,说明p是一个指针,然后再与()结合,说明指针指向的是一个函数,然后()里有int,说明函数有一个int型的参数,再与最外面的int结合,说明函数的返回类型是整型。
int *(*p(int))[3]; //p首先与()结合,说明p是一个函数,然后进入()里面,与int结合,说明函数有一个整型变量参数,然后再与*结合,说明函数返回的是一个指针,然后与外面一层的[]结合,说明返回的指针指向的是一个数组,然后再与*结合,说明数组里的元素是指针,最后与int结合说明数组内指针指向的内容是整型数据。
2.指针分析

浙公网安备 33010602011771号