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 

  

posted @ 2023-02-20 19:53  SophiaShen1114  阅读(86)  评论(0)    收藏  举报