const修饰变量
常量化变量的值
一般说明形式如下:
const <数据类型> 变量名 = [<表达式>];常量化变量是为了使变量的值不能修改
变量有const修饰时,若想用指针间接访问变量,指针也要有const修饰
#include <stdio.h>
int main(){
const int m = 10;//int const m = 10;
int * p = &m;
// error: m++;
(*p)++;
printf("%d\n",m);
return 0;
}
// 11const修饰指针
const在*前
常量化指针目标表达式
一般说明形式如下:
const <数据类型> * <指针变量名称>[= <指针运算表达式>];常量化指针目标是限制通过指针改变其目标的数制,但<指针变量>存储的地址可以修改
#include <stdio.h>
int main(){
int m = 10;
int n = 100;
const int * p = &m;
// error: (*p)++;
p = &n;
printf("%d\n",*p);
return 0;
}
//100const在*后
常量化指针变量
一般说明形式如下:
<数据类型> * const <指针变量名称> [= <指针运算表达式>];使得<指针变量>存储的地址不能修改。但可以通过但可以通过*<指针变量名称>可以修改 指针所指向变量的数值
#include <stdio.h>
int main(){
int m = 10;
int n = 100;
int * const p = &m;
// error: p = &n;
*p = 300;
printf("%d\n",*p);
return 0;
}
//300const在*前*后
常量化指针变量及其目标表达式
一般说明形式如下:
const <数据类型> * const <指针变量名> = <指针运算表达式>;常量化指针变量及其目标表达式,使得既不可以修改<指针变量>的地址,也不可以通过*<指针变量名称>修改指针所指向变量的值
#include <stdio.h>
int main(){
int m = 10;
int n = 100;
const int * const p = &m;
p = &n;//error
*p = 300;//error
printf("%d\n",*p);
return 0;
}
//ERROR