可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。像在VB,C#,C,C++,Java,PHP,Objective-C,JavaScript中我们可以看到static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COB...
错的,变量是可以修改的,常量不可以 静态局部变量和静态外部变量是一样的,差别就是一个局部一个全局,只是static又不是const
在变量创建的时候为其赋值,静态变量的值不可被修改,也就是在静态变量创建完成之后其值不可变,所以对于静态变量只有赋初值
我认为 static型变量能够保持上一次的值不变 那么下一次调用函数时,再对其赋值是无效的 因为它的值上一次的保持不变 比如:for (i=0; i<3; i++ ){ static j = 0; //每次循环对 j 赋值为0,可是赋值无效,输出结果还是:1 2 3 j++;printf("%d ", j);} ...
如果是静态全局变量,那么在不同文件中,可以重复定义.如果非静态,即无static修饰,那么在整个项目中,不可以有同名全局变量.即使不同类型也不可以.
而所谓的静态只是相对于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类型 ...
下列描述正确的是:( ) A. 静态变量的值不能改变。 B. 静态变量就是常量,其值一旦被初始化就不能再改变。 C. 静态变量只能做一次赋值运算。 D. 一个类的所有对象共享静态变量。 相关知识点: 试题来源: 解析 D.一个类的所有对象共享静态变量。反馈 收藏 ...
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告知编译器,自己仅仅在变量的作用域范围内可见。这一点是他与全局变量的区别。 从以上分析可以看出,把局部变量改变为静态变量后是改变了他的存储方式,即改变了他的...