标签:返回 其他 数据 这不 参数 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