【发布时间】:2026-01-10 15:45:01
【问题描述】:
#include <stdio.h>
int i=10;
int j=i;
int main()
{
printf("%d",j);
}
我收到一条错误消息,指出初始化元素不是常量?这背后的原因是什么?
【问题讨论】:
-
i是一个变量,而不是一个常数。并且 C 不允许全局或静态变量的非常量初始值设定项。 C 在这方面与 C++ 不同。 -
@ATaylor 不。 const int 没有解决它。
-
@user963472:在 C 中(与 C++ 不同)
const声明不会产生常量表达式。 -
@Vignesh_dino:
const并不意味着恒定;这意味着只读。 (并且const在 C++ 中并不总是暗示constant;请考虑const int r = rand();。)
标签: c global-variables