c语言之类型修饰符const
c语言定义了控制如何访问修改变量的类型修饰符。
const定义的变量在程序中不能修改其值,可以初始化。编译器把这类变量放入只读的区域。
const int x=10;
变量x的值是10,程序不能修改。
const可以保护函数参数指向的对象,函数不能修改。形参定义成const指针的时候,函数没有办法修改传入指针的实际变量。
下面看两个例子
1、
int fun(void);
int fun1(void);
const int x=10;
int main(void)
{
int y=0;
y=fun();
y=fun1();
printf("y is %d",y);
getch();
return 0;
}
int fun(void)
{
int y=0;
y+=x;
}
int fun1(void)
{
x+=3;
}
编译器将在x+=3处提示错误:x是只读变量。
我们给y=fun1()和函数做为注释,程序输出为:
y is 10
2、
void printchar(const char * str);
int main(void)
{
char * s="i live you c";
printchar(s);
getch();
return 0;
}
void printchar(const char * str)
{
while(*str)
{
printf("%c",*str);
str++;
}
/* *str="sss"; */
}
程序输出:i love you c。
如果我们在函数中修改str所指向的值,程序将提示错误:
变量是只读的。
注:程序在dev c++5 测试通过。