对于指针,我们在学习c语言初阶的时候就已经讲过:
1. 指针就是个变量,用来存放地址,地址唯一标识一块内存空间。
2. 指针的大小是固定的4/8个字节(32位平台/64位平台)。
3. 指针是有类型,指针的类型决定了指针的+-整数的步长,指针解引用操作的时候的权限。
4. 指针的运算
接下来我们来深入学习指针
字符指针
我们知道在指针的类型中有一种指针类型为字符指针 char*
大家再看看下面的代码
字符串“abcdef”是怎么存入指针的?
常量字符串a 的地址存放到指针变量 p中。
数组指针
我们在学习c语言初阶时学过指针数组
指针数组与数组指针比较类似,我们知道数组指针是一种指针,而整形指针是能够指向整形数据的指针,浮点型指针是能够指向浮点型数据的指针,那数组指针应该是能够指向数组的指针。
p先和*结合,说明p是一个指针变量,然后指针指向的是一个大小为10个整型的数组。所以p是一个 指针,指向一个数组,叫数组指针。
这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。
数组指针的使用
我们先来看一段代码
接下来我们用数组指针来改进一下代码
数组名add,表示首元素的地址,但是二维数组的首元素是二维数组的第一行所以这里传递的add,其实相当于第一行的地址,是一维数组的地址可以数组指针来接收 。
学习了指针数组,数组指针我们来一点练习看看大家有没有将二者混淆