指针与数组
在C语言中指针和数组关系十分密切,通过数组下标能完成的操作都可以通过指针来实现。
一般 用指针编写的程序比用数组下标编写的程序执行速度快
声明 int a[10];
声明一个指向整型变量的指针 int *pa; 那么赋值语句pa = &a[0], 则将pa指向了数组a的第一个元素,也就是说pa的值为a[0]的地址
这样赋值语句x = *pa, 就将a[0]的值赋值给了变量x。
(1)无论什么类型,指针加1,就意味着指向指针所指对象的下一个对象
(2)数组名代表数组第一个元素的地址
pa = &a[0] 等价于 pa = a
对数组 a[i] 的引用也可以写成*(a+i)这种形式
在计算 a[i] 的值时,C语言实际上现将其转换为 *(a+i) 的形式
注意:数组名和指针之间有个不同之处,指针是一个变量,可以对其进行赋值以及加减运算等操作,数组名不是变量,不能对其进行赋值和加减运算