请选出以下程序的输出结果_______。 #include<stdio.h> sub(x,y,z) int x,y,*z; {*z=y-x;} main(){ int a,b,c; sub(10,5,&A) ;sub(7,a,&B) ;sub(a,b,&C) ; printf('%d,%d,%d/n',a,b,C) ; }
A.5,2,3
B.-5,-12,-7
C.-5,-12,-17
D.5,-2,-7
A.h>
B.5,2,3
B.-5,-12,-7
C.-5,-12,-17
【参考答案】
B
解析:sub()函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,&a),10和5属于值传递,a是属于她址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随*2变化,所以此次函数被调用后,a的值为y-x=5,同理可知,在sub(7,a,&b)后,...
(↓↓↓ 点击‘点击查看答案’看完整答案 ↓↓↓)