目录
一道小题目:
1.指针数组
根据类比法:
字符数组——存放字符的数组(char arr[10];)
整型数组——存放整型的数组(int arr[10];)
指针数组——存放的就是相应指针
1.存放字符指针的数组——字符指针数组
char* arr[5];
2.存放整型指针的数组—整型指针数组
int* arr[5];
理解:arr先与[5]结合,说明arr是一个数组,数组中有五个元素,int*或char*就是每个元素种类。
2.数组指针
类比:
整型指针——指向整型的指针(int a=10;int* p=&a;)
字符指针——指向字符的指针(char a=‘w’;char* p=&a;)
数组指针——指向数组的指针(int arr[10];int (*p)[10]=&arr;)
理解:p先和*结合,说明p是一个指针,指针指向的类型是int [10]说明指针指向了一个数组这个数组有十个元素每个元素是int。
另外补充:&arr是取出整个数组的地址。
数组名是首元素地址(绝大多数情况)
两个例外:
1.sizeof(数组名)——sizeof内部单独放一个数组名的时候,数组名表示整个数组,计算得到的大小是数组总大小。
2.&arr——这里的数组名表示整个数组,取出的是整个数组的地址,从地址的角度来讲和数组首元素的地址是一样的,单意义不一样。
一个小程序认识&arr与arr不同: