c语言 求解 有以下程序 #include <stdio.h> voi

c语言 求解

有以下程序
#include <stdio.h>
void fun( int *a,int *b)
{ int *c;
c=a;a=b;b=c;
}
main()
{ int x=3, y=5, *p=&x, *q=&y ;
fun(p,q); printf("%d,%d,",*p,*q);
fun(&x,&y); printf("%d,%d\n",*p,*q);
}

程序运行后的输出结果是
A) 3,5,3,5
B) 3,5,5,3
C) 5,3,3,5
D) 5,3,5,3

B 因为第一次交换,只改变了a和b的值,因为指针指向x和y,所以没有改变它的值,第二次直接拿x和y交换,实际上x和y就被交换了,所以值是3.5.5.3
温馨提示:答案为网友推荐,仅供参考
相似回答