A-A+
有以下程序: #include <stdio.h> void swap1(int c[])
问题详情
有以下程序: #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%dn",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并未互换,即形参值的改变无法传给实参。