问题 填空题

下面程序的运行结果是______。
void swap(int *a,int *B)

int *t;
t=a; a=b; b=t;

main()

int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d %d\n",*p,*q);

答案

参考答案:3 5

解析: 在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向7实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依旧是原来的值。

单项选择题
多项选择题