有以下程序: #include void fun(int*a,int*b) { int*c; c=a;a=b;b=c; } main() { int x=3,y=5,*p=&x,*q=&y;

admin2021-04-28  23

问题 有以下程序:
    #include
    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语言中,函数参数传递的功能是“传值”,即形参和实参是两个没有关系的变量。本题程序中函数的形参为指针变量,函数内部交换的是地址值,不是地址值所指向的值,所以不会改变实参的值。
转载请注明原文地址:https://kaotiyun.com/show/hPtp777K
0

最新回复(0)