#include <stdio.h>
int main() {
// const修饰一个变量为只读
const int a = 100;
//a = 20; //error: assignment of read-only variable 'a'
//指针变量 指针指向的内存 是2个不同的概念
char buf[] = "hello world..";
// 从做往右看,跳过类型,看const修饰哪个字符
// 如果是* 说明指针指向的内存不能改变
// 如果是指针变量,说明指针的指向不能变
const char * p = buf; //等价于char const * p1 = buf;
//p[1] = 'a'; // err
p = "akdjfkla";
char * const p2 = buf;
p2[1] = 'b';
//p2 = "jaksjdf"; //err
// p3指向不能变,指向的内存也不能变
const char * const p3 = buf;
return 0;
}
通过指针可以修改c语言中const修饰变量的值
const int a = 100;
int * b = &a;
*b = 200;
printf("*b = %d a = %d\n", *b, a);
const_cast
const int n = 5; // int * p = &n; //error: invalid conversion from 'const int*' to 'int*'
int * p2 = const_cast<int *>(&n); // ok
网友评论