
下列程序段的输出结果是 ( )
voidfun(int*x,int*y){printf(“%d%d”,*x,*y);*x=3;*y=4;}main(){intx=1,y=2;fun(&y,&x);pri...
void fun(int *x, int *y)
{
printf(“%d %d”, *x, *y); *x=3; *y=4;}
main()
{
int x=1,y=2;
fun(&y,&x);
printf(“%d
%d”,x, y);
}
A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2
稍微写下过程,谢谢 展开
{
printf(“%d %d”, *x, *y); *x=3; *y=4;}
main()
{
int x=1,y=2;
fun(&y,&x);
printf(“%d
%d”,x, y);
}
A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2
稍微写下过程,谢谢 展开
1个回答
展开全部
答案选A
过程如下:
第一次调用fun,此时,x=1,y=2,所以fun(&y,&x)所接收到的参数实际是主程序中变量X和Y的地址,所以执行到fun函数体中的printf(“%d %d”, *x, *y); 时输出的是2和1。接着*x=3; *y=4;的意思是将参数X所指向的地址的值赋为3,将参数Y所指向的地址的值赋为4,由于参数所传递的是地址,即形参所指向的是主程序中变量XY的地址,所以在fun中的*x=3; *y=4;已将主程序中的值改变。所以当执行完fun后,回到主程序中时,printf(“%d%d”,x, y);时输出是4和3。(注意形参和值参的顺序)
过程如下:
第一次调用fun,此时,x=1,y=2,所以fun(&y,&x)所接收到的参数实际是主程序中变量X和Y的地址,所以执行到fun函数体中的printf(“%d %d”, *x, *y); 时输出的是2和1。接着*x=3; *y=4;的意思是将参数X所指向的地址的值赋为3,将参数Y所指向的地址的值赋为4,由于参数所传递的是地址,即形参所指向的是主程序中变量XY的地址,所以在fun中的*x=3; *y=4;已将主程序中的值改变。所以当执行完fun后,回到主程序中时,printf(“%d%d”,x, y);时输出是4和3。(注意形参和值参的顺序)

2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光...
点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询