A)一个变量的作用域的开始位置完全取决于变量定义语句的位置
B)全局变量可以在函数以外的任何部位进行定义
C)局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用
D)一个变量说明为static存储类是为了限制其他编译单位的引用
错误的是? 为什么???
C)变量如果说明了static呢??
追答声明了static,就具有静态变量的属性了,根据我写的3条规定来理解
”作用域开始位置取决于声明的位置 “ ” 取决于变量定义语句的位置“。。。有什么区别啊??
追答声明是告诉编译器有这么个玩意儿,与定义的区别是前者不分配内存,后者分配内存。
比如
void foo(void)这种情况下编译报错,但如果在foo函数前面加上extern int g;则可以编译通过
所以g的作用域是从声明开始的而不是定义
本回答被提问者和网友采纳C中,假如有个局部变量a=0,a++后变成1.。“不可能将局部变量的运算结果保存至下一次调用” 它说的不能保存的运算结果是0还是1?
还是不明白为什么D错。
还有C中,假如有个局部变量a=0,a++后变成1.。“不可能将局部变量的运算结果保存至下一次调用” 它说的不能保存的运算结果是0还是1???