C语言中static,const和static const 的区别

1.const规定了一个变量在它初始化值之后,值不能再改变,也就是只读

来看个例子:

const测试例子

在这个测试程序里,我试图在初始化变量c的值之后再修改c的值,编译直接报错,告诉我c已经是一个只读变量了,不可以改值。

2.static在函数内的时候,表明这个变量在函数的生命周期结束之后也不会被释放。
static使用测试

在第一次调用test()时,如果static int b没有被我赋初值,也会被默认赋值成0。然后执行自增运算,所以输出1。第二次调用test()时如果是普通的变量,则会被重新分配内存,但static类型的变量上次执行test函数之后没有被释放,而是保存在全局变量区,所以继续加一变成2。

对比一下非static的变量会怎样:

image.png
3.static在函数外的时候,表明这个变量的作用域只在该.c文件里,不能作用于整个工程。

你可能感兴趣的:(C语言中static,const和static const 的区别)