static int i = 5;
static int j = i;
int main()
{
return 0;
}
我正在通过在此之前声明的另一个静态变量初始化静态变量,但我也变量.请告诉我为什么这是错误的.
最佳答案 你不能用i初始化j,因为在编译时,编译器不会知道i的值.要赋值j = i,代码需要在运行时执行.在C中初始化全局或静态时,编译器和链接器需要一起工作以创建内存布局.编译器会给出值和链接器需要给出变量的地址.
以下代码将起作用:
static int i = 5;
static int j;
int main()
{
j=i;
return 0;
}