#include<stdio.h>
int a[10],i;
i=5;
a[i++]=i*2;
printf("%d",a[5]);
这代码的结果是 :12
这个比较好理解 因为a[i++] 把后面的i的值 自增加一,6*2=12了
现在请看下一个代码
#include<stdio.h>
int a[10],i;
i=5;
a[i++]=i*2+1;
printf("%d",a[5]);
当后面有了+1 后 为啥那么 a[i++]不起作用? 答案却是11了?
java表示,在java中输出的是13
这个是属于C语言的未定义行为
,不同编译器得到的结果不同。
参考
https://www.cnblogs.com/Lee-geeker/archive/2013/08/02/3232693.html