可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。像在VB,C#,C,C++,Java,PHP,Objective-C,JavaScript中我们可以看到static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COB...
在C语言中,关于静态变量的说法,正确的有()A.静态变量和常量的作用相同B.函数中的静态变量,在函数退出后不被释放C.静态变量只可以赋值一次,赋值后则不能改变D.静态全局
错的,变量是可以修改的,常量不可以 静态局部变量和静态外部变量是一样的,差别就是一个局部一个全局,只是static又不是const
我认为 static型变量能够保持上一次的值不变 那么下一次调用函数时,再对其赋值是无效的 因为它的值上一次的保持不变 比如:for (i=0; i<3; i++ ){ static j = 0; //每次循环对 j 赋值为0,可是赋值无效,输出结果还是:1 2 3 j++;printf("%d ", j);} ...
而所谓的静态只是相对于auto类型而言,因为static的变量能够保持上一次的值不必,如在一个循环体中定义 int i;for (i=0; i<5; i++ ){ static j = 0;j++;printf("%d\n", j);}分别输出1 2 3 4 5,而如果没有static 就是1 1 1 1 1,至于形参一般默认是auto类型 ...
static int a = 0; // 运行期时初始化一次, 下次再调用时, 不进行初始化工作如下:printf(“%d”,a);a++;} int main(){ staticLocalVar(); // 第一次调用, 输出a=0 staticLocalVar(); // 第二次调用, 记忆了第一次退出时的值, 输出a=1 return 0;} ...
在C语言中,静态变量的赋值是在程序运行前就确定的,一般是在编译时期进行赋值。如果需要在运行时期赋值静态变量,可以使用函数来实现。以下是一种解决方法:```c#include void s...
1、静态变量会被放在程序的静态数据存储区里,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是他与堆栈变量和堆变量的区别 2、变量用static告知编译器,自己仅仅在变量的作用域范围内可见。这一点是他与全局变量的区别。 从以上分析可以看出,把局部变量改变为静态变量后是改变了他的存储方式,即改变了他的...
当编译器处理该代码时,遇到静态变量的初始化,就会在函数f外单独生成一条命令,给j赋值为0. 这些命令甚至会在main函数调用以前就执行。而在函数中,第一条语句实际上不是j=0,而是++j。这样,使得静态局部变量只初始化一次。
静态局部变量实际上是外部于这个函数的全局量,退出函数时,它的值保留在那里,再调用函数时,如果不被赋新值,它仍保留老值。