来自:http://www.zhihu.com/question/20481976
a) int a;表示一个内存空间,这个空间用来存放一个整数(int);b) int* a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放整数的空间,即a)中提到的空间;
c) int** a;表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个存放指针的空间,并且指向的这个空间中的指针,指向一个整数。也简单的说,指向了一个b)中提到的空间;
d) int (*a)[10];表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个长度为10、类型为int的数组;和int** a的区别在于,++、+=1之后的结果不一样,其他用法基本相同。
以上四种类型见上图表示。
e)int *a[10] :数组指针,数组a里存放的是10个int型指针
f) int (*a)(int);表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个函数,这个函数有一个类型为int的参数,并且函数的返回类型也是int。
作者:余天升
链接:http://www.zhihu.com/question/20481976/answer/15249192
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
f) int (*a)(int);表示一个内存空间,这个空间用来存放一个指针,这个指针指向一个函数,这个函数有一个类型为int的参数,并且函数的返回类型也是int。
作者:余天升
链接:http://www.zhihu.com/question/20481976/answer/15249192
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
本文详细解释了C语言中不同类型的指针及其用途,包括基本的int指针、指向int的二级指针、指向int数组的指针及指向带有int参数并返回int的函数的指针等。

被折叠的 条评论
为什么被折叠?



