gpt4 book ai didi

c - 未初始化变量的值是由编译器设置的还是由什么设置的?

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

我最近在一个程序中遇到了一个问题,我将已初始化的变量与未初始化的变量进行比较。我最终弄清楚了(在其他人的帮助下!),但这提出了另一个问题。是由编译器或完全由其他东西设置的未初始化变量的值。当我在 Linux 中运行该程序时,该变量被设置为 -127xxxxxx,但是,在 Windows 中它被设置为 0。

所以本质上我的问题是什么设置没有值的变量的值。这是一个 C 程序。

操作系统:Windows 10 和 Linux Ubuntu 14.04.5 LTS

最佳答案

在 C 语言中,未初始化的 block 作用域变量被认为具有不确定的值。如果您编写尝试读取不确定值的代码,则取决于 a few details关于系统和其余代码,可以是:

  • undefined behaviour立即发生,或者
  • 读取会产生一些值,这些值可能会无缘无故地发生变化,并且如果将该值(或从中派生的值)传递给库函数,则会导致未定义的行为。

关于c - 未初始化变量的值是由编译器设置的还是由什么设置的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42429923/

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