首页 > 后端开发 > C++ > C 和 C 中如何用大括号初始化数组?

C 和 C 中如何用大括号初始化数组?

DDD
发布: 2024-12-13 02:41:10
原创
311 人浏览过

How Are Arrays Initialized with Braces in C and C  ?

带大括号的数组初始化:揭秘编译器的行为

编程中,用大括号给数组赋值,如 array[100] = {0},引发了有关如何在内部初始化值的问题。让我们深入研究一下这个符号背后的魔法。

魔法还是编译器逻辑?

与普遍看法相反,其中不涉及任何魔法。此代码的行为受编程语言规范控制:

C 规范(第 6.7.8.21 节): 对于未指定的数组元素,指针初始化为 NULL,算术类型(包括 char )设置为零。

C 规范(部分8.5.1.7): 未指定的数组元素是聚合初始化的。

C 中的空初始值设定项列表 : C 支持空初始值设定项列表,如 array[100] = {};,其中聚合-初始化数组的所有元素。

编译器生成代码: 通常,编译器会生成将数组的每个元素设置为指定值的代码。但是,根据编译器和优化设置,代码可能会有所不同。

要进一步了解编译器的行为,请参阅相关问题中为空初始值设定项列表生成的汇编代码:“Strange assembly from array 0 -初始化。”

以上是C 和 C 中如何用大括号初始化数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板