C Primer Plus(6th)

常量指针、指针常量、指向常量的指针常量

2020-11-14  本文已影响0人  akuan
  1. 指针常量
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都是指针常量,具有指针常量的特性。

  1. 常量指针
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改变所指向地址里的内容。
指针指向的变量的值不可通过该指针改变,但指针的指向可以被改变。

  1. 指向常量的指针常量
const int * const b = &a;
上一篇 下一篇

猜你喜欢

热点阅读