++i

nvidia 笔试题

i = 3

j= (++i)+(++i)+(++i)

经过gcc、vc++6.0、arm-linux-gcc验证,结果是:

i = 6

j = 16

编译器对j的计算顺序如下:
j=(((++i) + (++i)) + (++i))


ARM汇编代码如下:

++i_第1张图片


所以

i = 3

j=(++i)+(++i)+(++i)+(++i)

的结果应该就是

i=7

j=((5+5)+6)+7 = 23

(gcc已验证)


你可能感兴趣的:(++i)