欢迎关注笔者,你的支持是持续更博的最大动力
一维数组与指针(reverse)
数组的名字是一个指针常量,指向数组的起始地址。
一维数组定义:T a[N];
表示有N个元素的数组a。
- a是一个指针,类型是T *
- 编译时就对a确定了常量,不能对a进行赋值
- 可以用a给一个T * 类型的指针赋值,使得被赋值的指针,指向a数组的起始地址
- 数组a起始地址:a[0]的地址
数组a的大小 = 元素类型的大小 × \times ×元素个数
sizeof (a[N]) = sizeof(T) × \times ×N
T * p 和 T p[ ] 等价:
- 指针可以用下标运算符“[ ]”进行运算,p[n] 等价于 *(p+n)
- p[n]: p[0]的地址 + n × \times ×sizeof (T)
代码举例
举例1
int main (){
int a[200]; int *p; //a类型:int *;p类型:int *
p = a; //p指向数组a的起始地址,p[0]地址 = a[0]地址
*p = 10; //a[0] = 10; p[n] 等价于 *(p+n), *p等价于*(p+0)等价于p[0]
*(p+1) = 20; //a[1]= 20; p[n] 等价于 *(p+n), *(p+1)等价于p[1]
p[0] = 30; // a[0] = 30
p[4] = 40; // a[4] = 40
for (int i = 0 ; i < 10;