C++-c++里面数组初始化的语法 int a[] = {1, 2, }; 这种写法的作用?

发布于 2017-01-03 02:47:15 字数 86 浏览 1392 评论 3

类似于 int a[] = {1, 2, };这样的语法,为什么后面允许跟一个逗号‘,’,而且多数程序的习惯用法也是这样。有什么作用?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

虐人心 2017-11-05 17:15:25

在一些比较大的程序里面经常会看到这种写法,这种难过写法有一个很大的好处,那就是代码对齐

 int a[] = { 1,
2,
}

当后面维护代码或者添加功能的时候,经常需要增加数组,每次增加的时候都会是写一个元素和一个逗号,可以使代码更清晰。

甜柠檬 2017-10-01 14:12:55

一般不建议这样写代码,这样写主要是为了省去后续变量的赋值。
后边多加一个分号,程序就默认把数组后边的变量初始化赋值为0了。

晚风撩人 2017-04-29 07:57:05

虽然Int a[] = {1, 2};

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

两者语义完全相同,后者逗号看似多余。

不过称得上优秀的语言不会有多余的语法。

我们经常这样写:

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

维护前者这样的代码经常要考虑删除最后一行,或者从最后一行添加一行的时候会不会需要添加或者删除一个逗号。如果不支持多余的逗号会容易出现编译错误。而采用后者看似怪异的语法可以有效避免这种多余的担心,要知道一个职业程序员的代码里面会有成千上万这样的初始化代码。我们可以把这个语法称之为面向程序员的友好UI设计。和其他领域的优秀设计一样,一切都是为了满足需求。

考虑一个可以自动产生代码的伪代码

output("int a[] = {");
for (int i = 0; i < items.length; i++) {
<coding-5 lang="other">
output("%s, ", items[i]);
}
output("};");

末尾加逗号的语法能够很好的产生有效代码。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文