C语言const用法
1.
int a[3]={1,2,3};
int b[3]={7,8,9};
const int *A=a;//A指向int类型的值声明为const,这表明不可以通过A来改变它所指向的值。
*A=4;//通过指针修改不允许
A[2]=5;//通过数组修改不允许
a[0]=6;//允许,因为a没有被const声明
*A=b;//允许
总结一下,就是不允许通过A指针或者A数组的方式修改值,但是可以通过A来指向别处
2.
int a[3]={1,2,3};
const int b[3]={7,8,9};
int *A=a;
A=&a[2];//允许,因为可以让A指向别处。
A=b;//不允许,因为已经通过const固定的数据如b,不能再将其他址赋给别的普通指针,否则通过指针就能改变const固定的值。
已经通过const固定的数据如b,不能再将其他址赋给别的普通指针,否则通过指针就能改变const固定的值。
3.
int a[3]={1,2,3};
int *const A=a;
A=&a[2];//不允许,因为const位置变了,现在A只可以指向一个位置,就是a[0]。
*A=5;//允许,因为这就相当于更改了a[0]的值。
const放在*后面,这样A只能指向一个位置。
4.
int a[3]={1,2,3};
const int *const A=a;
A=&a[2];//不允许,因为一个const在*后面,现在A只可以指向一个位置,就是a[0]。
*A=5;//不允许,不能通过A指针方式修改,参考1。
使用const两次。