标签:返回 其他 数据 这不 参数 c语言 分析 注意 相同
int *p1;定义了一个变量p1,前面的*表示p1是一个指针,指向什么?指向一个int类型的数据。
int *p2[5];从变量名看,定义了一个变量p2。注意,[]的优先级比*高,所以p2是一个数组。数组的每个元素是什么类型?前面的*表示每个元素都是指针。指向什么?指向一个int类型的数据。
int (*p3)[5];从变量名看,定义了一个变量p3。因为用()改变了优先级,所以先看*,*表示p3是一个指针。指向什么?注意,表示数组的int [5]也是一种类型,所以p3是一个二维数组指针。(一维数组指针指向的是数组的第0个元素。二维数组同理,指针指向的是二维数组的第0个元素,也即一个一维数组)
int *p4(int, int);这不是指针,这是声明了一个函数p4()。返回值是指向int类型的指针,参数是int, int。
int (*p5)(int, int);从变量名看,p5是一个指针,后面的()是函数参数,所以p5是一个函数指针。函数的返回值是int,参数是int, int。
int *(*p6)(int, int);p6和p5大致相同,除了指向的函数的返回值是int *(指向int类型的指针)。或者你也可以理解为p6是指向p4()函数的函数指针。
int *(*p7[5])(int, int);p7是一个指针数组,每个元素都是和p6一样的函数指针。
基本上常用的就这些了,其他的你可以自己理解。(如果不能的话,在重新看一遍!)
标签:返回 其他 数据 这不 参数 c语言 分析 注意 相同
原文地址:https://www.cnblogs.com/HuZhixiang/p/12762694.html