没有问题,可以直接赋值的
首先p指向m,q指向n;
然后r=p,r指向p,p指向m,所以r指向m
p=q,p指向q,q指向n,所以p指向n
q=r,q指向r,r指向m,所以,q指向m
所以输出结果是:m,n,n,m,即1,2,2,1
答案是B
这段代码可以正常运行,它是将变量之间进行赋值,不是将一个确切的值赋值,不需要先解引用
#include <stdio.h>
int main(){
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;
p=q;
q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
return 0;
}
如有帮助,请采纳,谢谢~
用r来当中间变量交换p,q的指针。所以交换完了p指向了n;q指向了m。
每条语句都合理,不知道那一条语句有疑惑?
另外,下次请不要贴图,贴代码。对想帮你的人要有起码的尊重。