问题 单项选择题

分析下列程序:
#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,66,9
B) 6,9 9,6
C) 6,9 6,9
D) 9,69,6

答案

参考答案:A

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

选择题
填空题 案例分析题