找考题网-背景图
未分类题

请选出以下程序的输出结果_______。 #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)后,...

(↓↓↓ 点击‘点击查看答案’看完整答案 ↓↓↓)
热门试题