int sub(int x,int y,int *z)C语言问题

#include*&(*&voidsub(intx,inty,int*z){*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b... #include *&(*&
void sub(int x,int y,int*z)
{
*z=y-x;
}
main()
{
int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%4d,%4d,%4d\n",a,b,c);
}
这里为什么没有在函数sub中用return,a,bc的值就变了
展开
 我来答
snowland
2016-02-17 · 知道合伙人软件行家
snowland
知道合伙人软件行家
采纳数:1229 获赞数:7313
多次参加C++算法类竞赛获奖。

向TA提问 私信TA
展开全部
int sub(int x,int y,int *z)
{
*z = x-y;
return *z;
}

 z是地址传参,所以要写成*z

z在传参的时候要写&



例子:

int x=5,y=3,z,res;

res=sub(x,y,&z);


语句过后,z值为2,res值为2


%%%%%%%%%%%%%%%%%%%%%%


刚才没有看到你的详细问题呢...


应该是这样:

函数返回值是void,所以可以不写return(可以理解成‘}’之前就return了)


函数是地址传参,所以会改变原有的z值

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式