指针与数组

发布时间 2023-12-29 21:41:08作者: 奔付山河

数组名访问数组元素

a[i] 等价于 *(a + i)

数组名也是指针,但是是指针常量,指针操作赋值给普通指针

int i, *pa, a[] = {3,4,5,6,7,3,7,4,4,6};
pa = a;
a++;//不可以
pa++;//可以

int i, a[] = {3,4,5,6,7,3,7,4,4,6};
int *const pa = a; /* 注意 const 的位置:不是 const int *pa */
a++;//不可以
pa++;//不可以

const int *pi与int *const pi

int const i 等价于 const int i //前后一样i不可以被赋值

const int *pi = &i1;
pi = &i2; //注意这里,pi 可以在任意时候重新赋值一个新内存地址
*pi = i2;//不可以

// int *const pi 与 int const *pi不同,const 是写在 pi 前和*号后的,而不是写在*pi 前的
int *const pi = &i1;
pi = &i2; //不可以,pi是指针常量

const int * const pi=&i;//pi不能改,*pi也不能改