gpt4 book ai didi

c - 使用 {} 进行数组初始化的未指定维度

转载 作者:太空狗 更新时间:2023-10-29 16:08:52 24 4
gpt4 key购买 nike

我想知道是否:

int a[] = {1, 2};

分配 sizeof(int) * 括号内常量的数量

int a[5] = {1, 2};

将常量赋值给从0到1的数组字段,然后用0填充

int a[5] = {};

用0填充

当我这样做时会发生什么:

int a[] = {};

谢谢。

最佳答案

int a[5] = {};

 int a[] = {};

不是有效的 C 定义。

在 GNU C(具有 gcc 扩展名的 C)中,您可以使用空的 {},它被认为与 {0} 相同。

注意 int [] 是一个不完整的类型。当用显式初始化器初始化一个不完整类型的数组时,该类型是完整的,数组的元素数就是大括号括起来的初始化器列表中的元素数。

因此 int a[] = {0}; 在 C 和 GNU C 中定义了一个只有 1 个元素的数组 int a[] = {}; 做同样的事情.

关于c - 使用 {} 进行数组初始化的未指定维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769077/

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