问题
单项选择题
有以下程序: #include <stdio.h> void swap1(int c[]) { int t;t=c[0]; c[0]=c[1]; c[1]=t; } void swap2(int c0,int c1) { int t;t=c0; c0=c1; c1=t; } main() { int a[2]={3,5},b[2]={3,5};swap1(a); swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); } 其输出结果是( )。
A.5 3 5 3
B.5 3 3 5
C.3 5 3 5
D.3 5 5 3
答案
参考答案:B
解析: swap1函数传递的是变量的地址,可以实现两个数的交换;而swap2函数传递的是值,执行完swap2后,c0,c1的值互换了,但main函数中的b0和b1并未互换,即形参值的改变无法传给实参。