有以下程序 #include<stdio.h> void f(int *p,int *q); main() { int m=1,n=2,*r=&m; f(r, &n); printf

admin2009-09-28  45

问题 有以下程序        #include<stdio.h>        void f(int *p,int *q);        main()        { int m=1,n=2,*r=&m;          f(r, &n); printf("%d,%d",m,n);        }        void f(int*p,int*q)        {p=p+1; *q=*q+1;)         程序运行后的输出结果是______。

选项 A、1,3
B、2,3
C、1,4
D、1,2

答案A

解析 本题主要考查函数实参和形参之间的传递,C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只能由实参传绐形参,而不能由形参传回来给实参。f(r&n)把n的地址传递给q,通过地址传递的函数可以有返回值,因此,n的值为q的返回值3,又因为p是形参变量没有返回值,所以m的值没有改变,因此,选项A是正确的。
转载请注明原文地址:https://jikaoti.com/ti/2HI0FFFM
0

最新回复(0)