C++之const关键字

来源:互联网 发布:ios程序员烂大街 编辑:程序博客网 时间:2024/05/17 02:05

若定义一个整型变量int x=10,那么
变量名:x
存储地址:&x
存储内容:10

如果是const int x=10,那么
变量名:x
存储地址:&x
存储内容:10
其中const的存储内容10(加粗斜体)代表的是常量,从此不再改变。

const与指针类型:

1.const int *p=NULL;2.int const *p=NULL;12完全等价3.int* const p=NULL;4.const int* const p=NULL;5.int const* const p=NULL;45完全等价

举例:

int x=10;const int *p=&x;//若接下来用p=&y是正确的//若接下来用*p=4是错误的

因为:
变量名 存储地址 存储内容
x &x 10
p &p &x

int x=10;int *const p=&x//若接下来用p=&y是错误的

因为:
变量名 存储地址 存储内容
x &x 10
p &p &x

const int x=10;const int *const p=&x;//若接下来用p=&y,*p=11都是错误的

因为:
变量名 存储地址 存储内容
x &x 10
p &p &x

const与引用:
举例:

int x=10;const int &y=x;//若接下来用x=11是正确的//若接下来用y=11是错误的
const int x = 3;int *y = &x;//错误,x不可变,*y是可变的,因此存在风险,可以通过改变*y改变x,编译器禁止int x = 3;const int *y = &x;//指针*y指向的位置不可变,只有读权限,而x可变,具有读写权限,用小权限的指向大权限是可以的
1 0