一道C++题目 请问最后为什么a是46 b是34?我觉得a应该是34..b是46

2025-05-15 08:13:55
推荐回答(2个)
回答1:

p和q是int型指针变量,p和q交换后,p指向变量b的地址,q指向变量a的地址,但a和b值不变,仍然为12和34。*q=*p+*q执行后,p指向内存(b)值为34,q执行内存(a)值为46,故a为46,b为34。

回答2:

这种C++程序首先就是要把逻辑弄清楚,最好是拿支笔写一下。

  1. p指向a=12,q指向b=34

  2. pb=34,*q->a=12

  3. cout<<*p->b=34,*q->a=12

  4. *q->a=*p->b+*q->a;其实就是a=a+b;

所以最后a是46,b是34