c - C程序中的运算符值评估问题

标签 c

#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/

相关文章:

c - 机器代码指令如何传输到 CPU?

c - 在 C 中解压缩 .gz 字符串?

c - 将带双引号的单词存储到 char 数组中

c - stat 给出没有这样的文件或目录

c - C 中 << 运算符的含义

c - C 中的双指针常量正确性警告

c - 再次浮点精度

c - C 中的整数到字符串,无需预先分配字符数组

计算运行平均值

c - 我的 C 代码有问题,但我看不到错误。这是一个简单的程序