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的值就变了 展开
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的值就变了 展开
1个回答
展开全部
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值
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询