有以下程序: #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); pr

admin2019-06-12  18

问题 有以下程序:
#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 5 3
B、3 5 3 5
C、5 3 3 5
D、5 3 5 3

答案B

解析 在C语言中函数参数传递的功能是“传值”,即形参和实参是两个没有关系的变量。本题函数的形参虽然为指针变量,但是函数内部交换的是地址值,而不是地址值所指向的函数值,所以不会传递给实参,因此交换函数并没有交换p、q所指向的值。
转载请注明原文地址:https://kaotiyun.com/show/MjRp777K
0

最新回复(0)