有以下程序 #include void fun( int x, int y, int *c, int *d ) { *c = x+y; *d = x-y; } main() { int a=4, b=3, c=0, d=0; fun ( a, b, &c

admin2021-07-09  32

问题 有以下程序
#include
void fun( int x, int y, int *c, int *d )
{ *c = x+y; *d = x-y; }
main()
{ int a=4, b=3, c=0, d=0;
fun ( a, b, &c, &d );
printf( "%d %d\n" , c, d );
}
程序的输出结果是( )。

选项 A、7 1
B、4 3
C、3 4
D、0 0

答案A

解析 考查函数调用的参数传递。值传递过程中,形参只是实参的一个副本,形参改变不能影响到实参,所以值传递是单向传递,只能由实参传给形参。地址传递过程中,形参和实参指向同一个地址空间,两者的改变保持同步,所以在本程序调用结束之后, c、d值发生了改变,c=7,d=1,输出结果为A)。
转载请注明原文地址:https://jikaoti.com/ti/0jz0FFFM
0

最新回复(0)