C++-c++里面数组初始化的语法 int a[] = {1, 2, }; 这种写法的作用?
类似于 int a[] = {1, 2, };这样的语法,为什么后面允许跟一个逗号‘,’,而且多数程序的习惯用法也是这样。有什么作用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
类似于 int a[] = {1, 2, };这样的语法,为什么后面允许跟一个逗号‘,’,而且多数程序的习惯用法也是这样。有什么作用?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
在一些比较大的程序里面经常会看到这种写法,这种难过写法有一个很大的好处,那就是代码对齐
int a[] = { 1,
2,
}
当后面维护代码或者添加功能的时候,经常需要增加数组,每次增加的时候都会是写一个元素和一个逗号,可以使代码更清晰。
一般不建议这样写代码,这样写主要是为了省去后续变量的赋值。
后边多加一个分号,程序就默认把数组后边的变量初始化赋值为0了。
虽然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("};");
末尾加逗号的语法能够很好的产生有效代码。