关于 (++i)+(++i)...

int  i = 3;

printf("%d", (++i) + (++i));

 

打印结果 不是6 ,不是7  ,不是8,也不是9,   而是10。

 

因为 (++i)+(++i) 是先对第一个  i   加1   ,现在  i 等于 4 ,  然后再对第二个 i 进行加 1, 现在的 i  等于5

然后把 5 赋值给 第一个 i 和第二个 i,  所以结果就是 5+5 =10;

 

(++i)+(++i)+(++i)   这个表达式 则可以看成  ((++i)+(++i))+(++i)  即 先把前两项算出结果再与第三项

计算 ,  由上面可知 前两项的结果为10 ,   然后10再加 ++i    ,  也就是加上6,   所以结果为16。

 

 

 

 


版权声明:本文为Ataiyang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。