gpt4 book ai didi

c - 在 C 中,是否对只有一个元素的数组初始化进行了特殊处理?

转载 作者:太空狗 更新时间:2023-10-29 17:04:21 26 4
gpt4 key购买 nike

阅读时this question我想在 GCC 中测试输入,看看会输出什么错误。令我惊讶的是下面一行:

char array[] = {"s"};

编译没有错误或警告,导致大小为 2 的数组包含 "s\0"。我本以为会出现编译器错误,因为表达式右侧的类型是 char*[]

在这种情况下,只有一个元素的数组初始化不被视为数组吗?为什么?

最佳答案

char array[] = {"s"};

等同于:

char array[] = "s";

这里的 { } 在这种情况下是可选的,因为“s”是字符串文字。

或者,

char array[] = {'s', '\0'};

在这种情况下,{ } 是初始化数组所必需的。

关于c - 在 C 中,是否对只有一个元素的数组初始化进行了特殊处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8061346/

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