山不在高,有仙则名。水不在深,有龙则灵。
----CSDN 时时三省
数组指针
是一种指针-是指向数组的指针
整型指针-是指向整形的指针
字符指针-是指向字符的指针
什么叫做数组指针
上面的整形指针跟字符指针只需要&一下就可以找到它的地址
&arr 才是取出数组的地址
parr就是一个数组指针-其中存放的是数组的地址
&arr跟arr的区别
它们指向同一个地址 但是类型不一样
根据上面的代码我们发现,其实& arr和arr,虽然值是一样的,但是意义应该不一样的
实际上:& arr表示的是数组的地址,而不是数组首元素的地址。(细细体会一下)数组的地址+1,跳过整个数组的大小,所以& arr +1相对于& arr的差值是40
数组名是数组首元素的地址
但是有2个例外:
1、sizeof(数组名)-数组名表示整个数组,计算的是整个数组大小,单位是字节
2、&数组名-数组名表示整个数组,取出的是整个数组的地址
数组指针的使用
二维数组
二维数组的数组名表示首元素的地址
二维数组的首元素是:第一行
int arr[5];整型数组
int *parr1[10];整型指针的数组
int (*parr2)[10];数组指针,该指针能够指向一个数组,数组十个元素,每个元素的类型是int
int (*parr3[10])[5];parr3是一个存储数组指针的数组 该数组能够存放10个数组指针
每个数组指针能够指向一个数组,数组5个元素,每个元素是int类型