可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。像在VB,C#,C,C++,Java,PHP,Objective-C,JavaScript中我们可以看到static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COB...
首先static变量不是全局变量,全局变量在整个程序中均可见。且可以在整个程序的任何位置进行修改。而static变量,只在声明它的函数内看见,也只有在声明它的函数内可以被修改。即便在函数外或其它函数中有同名的变量,也和它不是同一变量。和局部变量相比,局部变量在每次调用函数时,变量值都会重置。而stati...
static法则: A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度; B、若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度; C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题; static用来控制...
而如果说你让int a这种随意的变量放置到全局,就是一个灾难,会出现莫名奇妙被修改,找半天找不到被谁修改的问题。 说完了全局变量,全局函数前面加static,下来说下函数内部,添加static的妙用。 函数中的局部变量,默认是都在栈上面,这类变量最大的特点就是,函数返回之后,这段区域就会被其他函数调用时覆盖,重复利用,...
没有使用static修饰变量,程序正常运行 使用static修饰全局变量,这个时候程序执行出错 全局变量是具有外部链接属性的,外部链接属性是指在创建的项目里面,其中一个源文件(.c文件)里面设置的全局变量可以在其他的源文件里面使用。但是,如果使用static修饰全局变量,全局变量的外部链接属性会变成内部链接属性,导致其他得源文件就...
在 C 语言当中,变量的存储类型只能使用一个。因此 register 和 static 是不能放在一起共用的。即便是可以放在一起,register 也不能跟 static 一起共用。这是因为 static 所修饰的变量,称之为静态变量。静态变量的生命周期和全局变量是一样,如果放在寄存器中,也是白白浪费了一块地方。2.5 寄存器的数量是有限...
从这里终于也能知道一个东西的原因了,那就是为啥被static修饰的局部变量的值可以被重复的访问和修改 常见的代码栗子如下: //main.cpp#include<iostream>usingnamespacestd;voidtest(){staticinta=0;cout<<"a = "<<a++<<endl;}intmain(intargc,constchar*argv[]){for(inti=0;i<20;i++){test();}return...
要清零静态变量,可以使用赋值操作符将其值设置为0。在函数内部,可以通过赋值语句将静态变量的值重置为0,从而达到清零的效果。例如,可以使用以下代码清零一个静态变量: ```c void resetStaticVariable() { static int count = 0; count = 0; // 清零静态变量 } ``` 在上述代码中,函数`resetStaticVariable`中...