首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >初始化的数组是否保留C/C++和类似语言的顺序?

初始化的数组是否保留C/C++和类似语言的顺序?
EN

Stack Overflow用户
提问于 2016-03-23 13:24:56
回答 2查看 181关注 0票数 2

说我在C/C++:中有一个数组

代码语言:javascript
复制
int myArray[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

在Java中相同:

代码语言:javascript
复制
int[] myArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

以及其他编程语言中的等价物。

它是否保证元素将始终按照我在初始化时键入的顺序排列?例如:1, 2, 3, 4, 5, 6, 7, 8, 9, 10

注意:我已经问过特定于编程语言的this question了,我知道这是真的。但我不知道这种行为是否是任何(或大多数)编程语言的规则,我不确定编辑是否是最好的方式。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-23 13:36:11

让我们听听C的创建者对此的看法:

数组可以通过以下声明初始化数组,其中包含大括号并以逗号分隔的初始化器列表。例如,要用每个月的天数初始化数组天数: int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } 当忽略数组的大小时,编译器将通过计算初始化器来计算长度,在这种情况下,初始化器有12个。如果数组的初始化器少于指定大小,则外部、静态和自动变量的其他初始化项将为零。初始化器太多是错误的。 如果不提供前面的所有值,就无法指定初始化器的重复,也无法在数组中间初始化元素。 字符数组是初始化的特殊情况;可以使用字符串代替大括号和逗号符号: char pattern = "ould";是较长但等价的速记 在本例中,数组大小为5(4个字符加上终止的'\0')。

C作者BRIAN W KERNIGHAN & DENNIS M RITCHIE,第二版,第95页。

票数 6
EN

Stack Overflow用户

发布于 2016-03-23 13:37:59

两种情况都是一样的。

int[] myArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

它就够了

代码语言:javascript
复制
int[0] = 1
int[1] = 2
.
.
.
int[9] = 10

它不会因语言而异,int[] arrayjava中的理想语言,只是为了程序方便,允许使用int array[]

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36179444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档