これは素朴な質問かもしれませんが、私の理解によると、配列の非可逆ベースインデックスはゼロで始まることが分かります。 私が理解していないのは、ベース1の索引付けを使用すると、次のプログラムが正常に動作する理由です。ベースインデックス1のCプログラムがうまくいきませんか?
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[n];
int i;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("%d",a[n]);
return 0;
}
あなたはただ幸運です –
ほとんどのCプログラムと同様に、それは事故で動作します!初期化されていないメモリを見るには、最初の数字として '0'と入力してください。 – Ryan
[未定義の動作](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html) – purplepsycho