指针与数组
1. C语言中的数组
C语言中只有一维数组,而且数组的大小必须在编译期就作为一个常数确定下来。对于一个数组,我们只能够做两件事:确定该数组的大小,以及获得指向该数组下标为0的元素的指针。其他有关数组的操作,哪怕咋看上去是以数组下标进行运算的,实际上都是通过指针进行。在C语音中索引运算是以指针算术的形式定义。
int a[3]; //声明一个有3个元素的整型数组 int *p; //声明一个指向整型的指针变量 p = a; //把数组a中下标为0的元素的地址赋值给p
这里不能写成p = &a,这种写法在ANSI C中时非法的,因为&a是一个指向数组的指针,而p是一个指向整型变量的指针,它们的类型不匹配。
*a即数组a中下标为0的元素的引用,同样*(a+i)是数组a中下标为i的元素的引用,被简记为a[i]。