c - 为什么 Windows 上的 gcc 将特定值分配给变量?

标签 c variables

这是我的第一个问题……很高兴认识你!
有人可以解释为什么这段代码是用 C 编写的

#include <stdio.h>

int main(){
 int choice;

 printf("\nSize of 'choice' %d\n", sizeof(choice));
 printf("Size of 'int' %d\n", sizeof(int));
 printf("Value of 'choice %d\n", choice);
 return 0;
}

在 Windows 上使用 gcc -o C:\test.exe test.c 编译(gcc 版本 2015/06/27)返回这些值
Size of 'choice' 4
Size of 'int' 4
Value of 'choice 2

而在 Linux 上一切正常,返回这些值
Size of 'choice' 4
Size of 'int' 4
Value of 'choice 0

我错过了什么?

非常感谢。

最佳答案

未初始化的局部非静态变量就是这样,未初始化。它们将具有不确定的值(value)。在没有初始化的情况下使用它们会导致未定义的行为。

关于c - 为什么 Windows 上的 gcc 将特定值分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40108303/

相关文章:

c - 从文件加载 C 结构

c++ - Linux下如何将ARM和Flash组装到STM32?

php - 使用赋值运算符 (+=) 时的 undefined variable

java - 在类级别和方法中声明对象之间的区别

matlab - 根据可变数量的输入捕获所有可能的输出。

php - 如何在 PHP 中正确拆分 PATH 变量?

c - C 中用指针反转字符串

c - 如何在许多元素始终为 0 的数组中节省内存?

c - 使用 "fgets"时如何仅获取部分用户输入并丢弃其他字符?

Javascript 公共(public)/私有(private)变量