下面程序的运行结果是:【 】。 void swap(int *a,int*b) { int *t; t=a;a=b;b=t; } main() { intx=3,y=5,*p=&x,*q=&y; swap

admin2013-06-11  28

问题 下面程序的运行结果是:【  】。
   void swap(int *a,int*b)
   { int *t;
     t=a;a=b;b=t;
   }
   main()
   { intx=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分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依然是原来的值。
转载请注明原文地址:https://jikaoti.com/ti/zcn0FFFM
0

最新回复(0)