1、const修饰变量
被const修饰过的变量相当于常量,它的值不能被赋值改变,在整个作用域内保持固定。所以说它定义的是只读变量,在定义的时候需要给它赋初值。
1 const int a = 1; 2 a = 2; /*错误,常量的值不能改变*/ 3 const int a; /*错误,常量定义时需要初始化*/
2、const修饰指针
1 const int* p; /*常量指针,指针指向的内存可以改变,指针的值不能改变*/ 2 int* const p; /*指针常量,指针指向的值可以改变,指针指向的内存不能改变*/ 3 const int* const p; /*指向常量的常量指针,指针指向的值和内存都不能改变*/
3、const修饰形参
(1)const修饰形参变量时,在函数体内值不能改变。
(2)const修饰形参指针时,在这里指常量指针,在函数体内指向的数据不能改变。
注:上述是对const关键字基本用法做出了简介,但在应用中,被const修饰过的常变量可以修改吗?
1 const int a = 1; 2 int* b = &a; 3 *b = 2; 4 printf("%d", a);
上述代码运行结果为2,可以看出被const修饰过的常变量不能通过变量名去修改,但可以通过指针去修改被const修饰的内存。