C语言学习中比较奇怪的问题(1)int a = 1 ; int sum = (++a) + (++a) + (++a) ;
题目: int a = 1 ;
int sum = (++a) + (++a) + (++a) ;
当前想法:sum = 2 + 3 + 4 = 9
结果: sum = 10
原因:key —— 寄存器
第①个++a = 2 放入寄存器 ,作为左边操作数
第②个++a = 3放入寄存器 , 作为右边操作数
进行操作:2 + 3 = 5
将 5 放入寄存器中,拿出来执行++a=6,作为左边操作数
第③个++a=4放入寄存器中,作为右边操作数
进行操作:6 + 4 = 10
同理可得:
int sum = (++a) + (++a); // 6
浙公网安备 33010602011771号