gpt4 book ai didi

c - 打印无法识别的 int 变量会输出什么?

转载 作者:行者123 更新时间:2023-11-30 14:40:12 25 4
gpt4 key购买 nike

如果我运行这个程序:

#include <stdio.h>

int main()
{
int a=32,b=2,c,i;
for(i=0;i<3;i++){
printf("%d\n",c);
c=a/b;
a=c;
}

return 0;
}

输出是:

32765
16
8

在那里,我没有定义C的值,这个输出32765是从哪里来的?即使我再次运行此代码更多时间,它也会显示不同的值,例如 32764,32767。为什么会显示这种不同的输出?

最佳答案

由于c具有自动存储期限(即非静态局部变量)且未初始化,因此其值为不确定。尝试打印从未获取其地址的未初始化变量(即不是地址运算符 & 的主题)会调用 undefined behavior .

即使您确实获取了c的地址,如果它包含陷阱表示,您仍然可能会出现未定义的行为。如果它不包含陷阱表示(并且大多数实现没有它们),则该值是未指定,这仅意味着无法预测打印值。

关于c - 打印无法识别的 int 变量会输出什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55652586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com