有以下程序: #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("%

admin2022-06-24  21

问题 有以下程序:
#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/1Ukp777K
0

最新回复(0)