【发布时间】:2018-09-29 12:29:05
【问题描述】:
我刚刚编写了一个示例代码来尝试一下。令人惊讶的是,我没有遇到任何编译失败。按照 C,我们应该有声明,然后是初始化或使用。请解释一下。
#include <stdio.h>
int main(void) {
int a = a = 1; //Why it compiles??
printf("%d",a);
return 0;
}
以上代码编译成功并输出 1。请解释并提供任何允许这样做的标准输入。
【问题讨论】:
-
使用 symply
int a = 1; -
您使用哪个编译器?更重要的是:您传递给编译器的标志是什么?
-
编译器可能只是忽略了其中的一部分。
-
您有什么理由认为应该得到编译错误?这是有效的 C(但也是有效的废话)。您可能想接受这两个概念并不排斥。
标签: c initialization variable-assignment