C语言--const与stastic关键字

1.const

const表示是不变的意思,用于修饰变量,会告诉编译器他是一个常量。

例如:int const a =10;如果此时在对a进行赋值,则编译的时候系统会报错。

那么如果你定义了const a,a真的不能更改吗?

答案是可以的,const机制是通过编译器检查实现的,虽然放在了文本常量区。程序在真正运行时,并不关心是不是const,只要编译器不报错就可以。

我们可以这样更改:

int main()
{
    int const a = 5;
   int *p = (int *)&a;
    *p = 55;

}

此时在读值a=55了

2.stastic

分为stastic局部变量、stastic函数、stastic全局变量

stastic局部变量:,在局部变量的数据类型前加上关键字“static”则可以把局部变量变成静态变量.局部变量有着局部变量的作用范围,全局变量的声明周期。

stastic函数:局部函数是指这个函数只能被当前所在的源文件使用,工程的其他源文件无法对这个函数进行调用.,static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

stastic全局变量:静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内

猜你喜欢

转载自blog.csdn.net/qq_45604814/article/details/110826089