C语言之const
const修饰全局变量
此时全局变量只能使用但是不能修改,
如果直接拿全局变量修改值,编译直接报错
如果使用全局变量的地址修改值,运行时程序异常结束
const修饰普通局部变量
可以读取变量的值
不能直接通过变量进行修改值,编译报错
可以通过变量的地址修改值
const修饰指针变量
#include <stdio.h>
void test1(void)
{
int a = 100;
int *p;
p = &a;
//改变*p的值有三种方式
a = 200;
printf("a=%d\n",*p);
*p = 300;
printf("a=%d\n",*p);
int b = 400;
p = &b;
printf("a=%d\n",*p);
}
int main()
{
test1();
return 0;
}
如果const修饰指针变量的类型,无法通过指针变量修改地址里面的值
如果const修饰指针变量,无法修改指针变量保存的地址
如果const既修饰指针变量的类型,又修饰指针变量,则只能通过原本变量修改值