A-A+

分析下列程序: #include<stdio.h> main() { int*p1 *p2

2022-08-05 23:35:50 问答库 阅读 173 次

问题详情

分析下列程序: #include<stdio.h> main() { int*p1,*p2,*p; int a=6,b=9; p1=&a;p2=&b; if(a<b){p=p1;p1=p2;p2=p;} printf("%d,%d",*p1,*p2); printf("%d,%d",a,b); } 程序的输出结果为()。
A.9,6 6,9
B.6,9 9,6
C.6,9 6,9
D.9,6 9,6请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:A
解析:通过p1=&a,p2=&b分别将a、b的地址赋给指针p1、p2,接着执行if语句,发现a<b成立,则通过交换p1、p2的值,即交换a、b所在存储单元的地址,但是a、b的值并没有发生变化。

考点:程序