const的本质只需看const修饰的对象是什么和const的修饰变量的数据类型是什么,被const修饰的对象的值不能被修改
- const int a 和 int const a 达到的效果一样int型变量a的值不可以被修改
- const int * b 和 int const * b 都指a所指向的那块内存的值不可变,也就是*a的值不可变
- int * const a 整数指针a的指向不可变但是 a指向的内存的内容可变
- int const * const a 和 const int * const a 整型指针a的指向和指向的内存的内容都不可被修改
1中const修饰的是a 是一个整型变量,a的值不可以被修改
2中const修饰的是*b 本质和1中的a的效果一样*b的数据类型和a的数据类型相同
3中const修饰的数据类型是int* ,修饰的对象是a所以 数据类型为int*的变量a的值不可变,也就是a的指向不可以发生改变
4中第一个const修饰的数据类型是int,修饰的变量是*a,所以*a的值不可变,第二个const修饰的数据类型是int* 修饰的变量是a,所以a的值不可变,综合所以a的指向和指向的内存的内容都不可被修改
欢迎关注问我团队公众号