int j=2 m=2; m+=(j++)+(++j)+(j++); m值是多少 为什么请详解

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:18:10
结果是11 WIN-TC环境

m+=就是m加上(j++)+(++j)+(j++)=(2+1)+(2+1)+(2+1)=11
j++这个表达式的值就是J+1的值,但J还是J
++J就是J+1的值,但同时J的值也会变成J+1

和编译器有关,结果不确定

m=9 不为什么

m+=(j++)+(++j)+(j++); 这句相当于:j=j+1;m=m+j+j+j;j=j+1;j=j+1;所以m=2+3+3+3=11;
++j是先自增1再调用j相当于上面m=m+j+j+j前的j=j+1;j++是先调用值再自增1,相当于m=m+j+j+j后两句j=j+1。