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修饰的内存。

发表回复