永发信息网

求此C语言题详解

答案:6  悬赏:10  手机版
解决时间 2021-04-05 05:17
  • 提问者网友:兔牙战士
  • 2021-04-04 14:33
求此C语言题详解
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-04-04 15:47
想了半天真不知道怎么详解

回去结合函数调用那部分再看看C语言指针 都是些非常基础的东西、

void main()
{
int a=1,b=2,c=3;
sub(a,b,&a); //调用sub(int x,int y,int *z) 执行完毕 a=1 (*z=y-x(即a=b-a (z为指针变量 在此处指向变量a的地址&a *z即变量a))),b=2,c=3
sub(b,a,&b); //调用sub(int x,int y,int *z) 执行完毕 a=1,b=-1(原理同上),c=3
sub(a,b,&c); //调用sub(int x,int y,int *z) 执行完毕 a=1,b=-1,c=-2(同上)
printf("%d,%d,%d\n",a,b,c);
}
全部回答
  • 1楼网友:拜訪者
  • 2021-04-04 20:58
C
sub(a,b,&a) a = 2 - 1 = 1
sub(b,a,&b) b = a - b = 1 - 2 = -1
sub(a,b,&c) c = b -a = -1 - 1 = -2
  • 2楼网友:青尢
  • 2021-04-04 20:18
SUB函数只有修改Z会影响到传入变量,接下来是3次操作以后的值
a b c
1 2 3
1 -1 3
1 -1 -2
选C
  • 3楼网友:枭雄戏美人
  • 2021-04-04 18:53
C
  • 4楼网友:杯酒困英雄
  • 2021-04-04 17:46
每次调用之后只有sub函数的最后一个参数的值有改变,因为有指针指向,按执行步骤,会相互影响,所以执行第一步之后,a的值为1,执行第二步之后b的值为-1,执行第三步之后,c的值为-2,所以答案是C。
  • 5楼网友:痴妹与他
  • 2021-04-04 16:54
c 值传递和引用传递的问题 , 你把值传递搞清楚了 , 这也就清楚了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯