int main(){
static int a[20];
int i = 1;
a[i] = i++;
printf("\n %d %d %d \n",a[0],a[1],i);
return 0;}
输出为0,0,2 为什么a [1]不像我一样是1。
如果我用i ++更改我
int main(){
static int a[20];
int i = 1;
a[i] = i;
printf("\n %d %d %d \n",a[0],a[1],i);
return 0;}
输出为0,1,1
Gcc版本为6.3.0
答案 0 :(得分:0)
语言未定义在i递增之前还是之后计算a [i]。因此,您的代码具有未定义的行为。