关于函数 void swap1(int a, int b) { int t; t=a;a=b;b=t; } 和函数 void swap2(int *a, int *b) { int t; t=*a; *a=*b; *b=t; } 如果有定义和调用语句: int x=5,y=6; swap1(x,y); swap2(&x,&y); 则下列叙述中,正确的是( )。
A.
调用swap1(x,y)时,只是将x中存放的5传递到函数的形式参数a中,y中存放的6传递到函数的形式参数b中,swap1函数内对a和b的交换不会影响到主调函数中的x和y
B.
调用swap2(&x,&y)时,只是将变量x的地址传递到函数的形式参数a中,变量y的地址传递到函数的形式参数b中,swap2函数内对a和b所指向单元的交换,事实上交换的就是x和y的值
C.
调用swap1(x,y)时,将x中存放的5传递到函数的形式参数a中,y中存放的6传递到函数的形式参数b中,swap1函数内对a和b的交换将导致主调函数中的x和y的交换
D.
调用swap2(&x,&y)时,只是将变量x的值传递到函数的形式参数a中,变量y的值传递到函数的形式参数b中,swap2函数内对a和b所指向单元的交换,将不会改变主调函数中x和y的值