c语言中一个小问题,请各位大神给个回答。

#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

问题解决的话,请点采纳