c - c中已声明但未初始化的int变量的值
问题描述
我是 C 新手,使用 DevC++ 作为我的 IDE。
我了解到,如果变量已声明但未分配任何值,则它们将使用随机值初始化(静态变量和全局变量除外,它们初始化为 0)。
但是当我尝试这个时:
int i, j, k;
printf("%d %d %d", i, j, k);
它打印:
i 总是 0;j 的任何大随机整数(总是不同的);k 的大随机整数(始终相同)。
这是运行上述代码 5 次的输出:0 13308816 32764 0 12391312 32764 0 11408272 32764 0 11015056 32764 0 7541648 32764
但我认为这些都应该打印随机值(垃圾值),每次都不同(与 j 相同)。
解决方案
C 语言一直对对象的初始值非常具体。如果是全局的或静态的,它们将被归零。如果是 auto,则值为 indeterminate。
推荐阅读
- php - 尝试更改格式化日期时间的语言时遇到未知字符
- javascript - 在循环中截断文本的字符
- asp.net-web-api - 自托管 asp.net webapi - 如何获得活动目录身份验证?
- laravel - 如何将 Laravel 5.4 中生成的密码用于 Laravel 5.6
- python - 在张量中操作标量 (Tensorflow)
- sql - 如何 SELECT 一行 TABLE 然后 INSERT 到另一个
- php - 通过 DOMDocument 获取链接标签
- python - 损坏的 virtualenv 但没有成功与其他解决方案库未加载:@executable_path/../.Python
- python-2.7 - 根据列中的值合并行
- javascript - 全选 | 使用切换按钮取消选择所有复选框