在下面的代码片段中,我试图使用一个表达式为全局变量分配一个值,但它给出错误“初始化元素不是常量”,我无法理解其背后的逻辑,请对此进行澄清。
#include<stdio.h>
int a=8;
int b=a+9;
int main()
{
printf("%d",b);
return 0;
}
您可以使用表达式分配全局变量。但仅在函数内部。就像编译器/链接器所说的那样,在函数外部您只能将变量初始化为常量。这是因为,在函数外部,无法执行任何代码,并且编译器/链接器会在构建时将变量初始化为常量。请注意,如果不初始化变量(在函数外部),则默认初始化为0。
#include<stdio.h>
int a=8;
int b;
int main()
{
b=a+9;
printf("%d",b);
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句