C语言中,指针与数组、函数的结合使用

1、指针与数组:指针数组数组指针
1.1、指针数组:本质上是一个数组,只是该数组中的元素都是指针。
char *arr[4] = {“hello”, “world”, “shannxi”, “xian”}; arr就是一个指针数组,元素是4个指向4个不同字符串的
指针。
1.2、数组指针:本质上是一个指针,只是这个指针指向一个数组。
char (pa)[4]; pa只是一个指针,它指向一个char类型的数组,数组大小为4,即有4个元素。
1.3、理解数组指针和指针数组的方法:优先级:()>[]>

1.3.1、char *arr[4]; 中优先级最高的是[],所以arr先和[]结合成arr[4],这是一个数组,即arr是一个数组,
char *构成一个类型,char指针类型来修饰这个数组,所以arr是一个指针数组。
1.3.2、char (pa)[4];中优先级最高的是(),所以和pa先结合构成一个指针变量,即pa是一个指针。char [4]是
一个数组类型,来修饰pa这个指针变量,所以pa就是一个数组指针,指向一个数组的指针。
2、指针与函数:指针函数函数指针
2.1、指针函数:本质上是一个函数,只不过这个函数的返回值类型是指针类型的。int *GetDate();
2.2、函数指针:本质上是一个指针,只不过这个指针指向一个函数。void (*fptr)();
2.3、理解指针函数和函数指针的方法同上面的指针数组和数组指针一样。

猜你喜欢

转载自blog.csdn.net/qq_36187809/article/details/87618545