- 指针常量
int * const p;
int a, b;
int * const p = &a;
*p = 9; →→操作成功
p = &b; →→操作错误
p是指针,而指针也就是一个变量而已,如果说它不普通那也只是因为它是一个指针变量。变量p前面紧挨着const关键字,说明变量p是一个常量,即指针变量p是一个常量,对于指针变量而言,能被约束为const常量的就是它的指向不能改变。
指针的指向不能改变,但指针所指向地址里的内容可以被改变。
int arr[3];
int arr4×5[4][5];
所有数组名都是指针常量。即arr和arr4×5都是指针常量,具有指针常量的特性。
- 常量指针
const int *p = &a;
int a, b;
const int *p = &a;
*p = 9; →→操作错误
p = &b; →→操作成功
就像const int a = 3
; 不能通过变量a修改右值。同样,对于const int *p = ■;
不能通过指针变量p修改右值,即不能通过指针p改变所指向地址里的内容。
指针指向的变量的值不可通过该指针改变,但指针的指向可以被改变。
- 指向常量的指针常量
const int * const b = &a;
网友评论