gpt4 book ai didi

c++ - 在大括号初始化结束时与额外的 ","有什么关系吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:21 25 4
gpt4 key购买 nike

除了明显的名称之外,以下两个声明之间是否有区别:

int main()
{
char str1[17] = {'H','e','l','l','o'};
char str2[17] = {'H','e','l','l','o',};
}

第二个多出来的','是怎么回事?这有什么意义吗?

两者似乎都编译得很好,在这种情况下,它们似乎根据 strcmp 生成相同的字符串,这至少是我所期望的,因为数组的其余部分填充了零。

最佳答案

尾随的逗号不是大括号初始化特有的,在编程语言中普遍存在(JSON 数据格式是异常值)。

除了便于机器生成之外,您从尾随逗号中获得的一个(小)好处是代码差异更小。如果你改变:

array<string, 20> a = {
"one",
"two",
"three",
};

array<string, 20> a = {
"one",
"two",
"three",
"four",
};

您只会得到 1 行差异。如果省略可选的尾随逗号,则需要更改 2 行以添加或删除最后一个元素。在编辑和阅读差异时始终使用尾随逗号可以节省您的时间。

关于c++ - 在大括号初始化结束时与额外的 ","有什么关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24156241/

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