1.const修饰全局变量
#include <stdio.h>
#include <stdlib.h>
const int val = 123; // 修饰全局变量
int foo()
{
// const int val=123;//修饰局部变量
#if 1
printf("a = %d\n", val);
val = 456;
printf("a = %d\n", val);
#else
// 试图通过指针修改值
int *p = &val;
*p = 456;
printf("a = %d\n", val);
#endif
return 0;
}
int main(int argc, char const *argv[])
{
foo();
printf("val:%d\n", val);
return 0;
}
结论:1.不能直接修改
2.不能通过指针修改
3.只能用不能改
2.const修饰局部变量
结论:1.不能直接修改
2.能通过指针修改
3.只能用不能改
3.const修饰指针变量
①const *p形式:
②*const p形式:
③const * const p形式:
结论:星前不乱改,星后不乱指,const在*号前面,不能修改值(read-only),放在后面,不能指向别的地址,前后都有,则前面结论加一起。