#include<stdio.h>
void main(){
int i;
i = i-3;
printf("%d",i); // output -3
}
为什么每次运行这个c程序时答案都是3。但我们知道 c 为未初始化的变量选择随机值。那么为什么它给出-3。我也尝试使用自动存储类。我正在使用代码块编译器。
最佳答案
您的代码导致了未定义的行为。代码中可能发生任何事情。您的代码可能会在屏幕上打印 3 或 300 或蒙娜丽莎图片。
6.3.2.1p2:
如果左值指定一个自动存储持续时间的对象,该对象可以用寄存器存储类声明(从未使用过它的地址),并且该对象未初始化(未用初始化器声明并且未执行任何赋值)使用前),行为未定义。
关于c - C程序中的运算符值评估问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20964418/