填空题 下面程序的运行结果是{{U}} 【18】 {{/U}}。 void swap(int *a,int *b) { int *tp; 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); }
  • 1、
【正确答案】 1、3 5    
【答案解析】[解析] 在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针.变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和 y依旧是原来的值。