int SUM[100]= { 0,1,5,2,8,3,9,2,8,7,7,
8,4,7,3,8,4,1,5,4,4,5,
9,6,2,7,3,6,2,1,1,2,8,
1,7,2,8,5,9,8,8,9,3,0,
6,1,7,0,6,5,5,6,2,5,1,
6,2,9,3,2,2,3,7,4,0,5,
1,4,0,9,9,0,6,9,5,0,6,
3,7,6,6,7,1,8,4,9,5,8,
4,3,3,4,0,3,9,4,0,7,1,
0,0};
如果我删除“100”并输入“int SUM []”,一切正常。为什么?
答案 0 :(得分:14)
因为101个数字不适合100个元素数组。
int SUM[100];
表示该数组恰好有100个元素,索引范围为0到 99 。 不意味着100是最后一个有效索引!这似乎是初学者的常见误解。
我总是记得这样:有10位数字,即0到9.但是没有数字10:)
答案 1 :(得分:4)
int SUM[X];
此语法表示您拥有X大小的数组。
int SUM[] = {1,2};
此语法会自动计算数组大小以及用于初始化它的元素数量,例如在上例中 SUM 大小为2。
在您提供100
时遇到问题时,您说要为100
元素分配数组,当您没有提供任何数字时,它会自动计算元素数并分配数组大小因此。
如果您计算用于填充数组的元素 101 ,那么要存储这些元素,您需要大小 101 的数组。因此,要么声明SUM[101]
,要么将其留空以自动检测数组大小。