C语言里几种容易混淆的指针
1、 指针数组:
数组里面存放的是指针(地址)。可以通过访问指针数组中的元素达到对其所指向的对象的访问。
指针数组的定义:* 指针变量[长度];*P[10 ];
2、 结构体数组:
数组里面存放的是结构体。比如a[0] 、a[1]中存放了一个struct student{}这样的结构体数据。
结构体的本质也是一个数组,一般意义上的数组只放同一种类型的数据,而结构体定义了一种可以存放多种数据类型的混合数组。
3、 数组指针:
指向一个数组的指针。定义:(*指针变量名)[长度],如(*p)[4],表示指向数组的指针,p指向一个长度为4的一维数组。
4、 指针函数:一种返回值为指针(地址)的函数。
一般定义函数时,无返回值时前面加void,返回值为实型时前面加fload。
如int max()返回值定义为整型。指针函数定义为:类型名 *函数名(参数列表);
int *fun(int x , int y)。 其中int 类型名表示返回的指针指向整型变量。
5、 函数指针:该指针指向某一个函数入口地址。定义为:数据类型(*
指针变量名)();
如:int (*p)()。
指针指向数组称为数组指针,指针指向函数称为函数指针。
指针数组表示为指针类型的数组,指针函数表示指针类型的函数。
○在定义指针变量时,不能忽略定义基础变量类型。