C语言问题,知道的解答一下,谢谢

如题所述

我想,你应该是不明白p=d++这一步,从底层来讲,p=d++的执行步骤如下:

将d的值载入寄存器,

d所在内存+1

将寄存器的值赋给p
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-08
首先调用fun函数时,传入的参数是1,但是在fun函数中,直接对p赋值了,p=d++;
是表示先赋值,再自加,所以这句话执行之后,p=2;d=3;
那么函数fun执行完成会打印出2。再转回到主程序,因为fun函数的形参只是普通的int型,不是指针,所以a的值没有被改变,仍然是1,所以再打印出1,那么就是21。
相似回答