void有无返回值c语言,c语言中的void表示无返回值,那下面的第一个程序怎样理解?...

c语言中的void表示无返回值,那下面的第一个程序怎样理解?

答案:4  信息版本:手机版

解决时间 2019-10-06 18:36

已解决

2019-10-06 05:52

void swap(int *x,int *y)

{int t;

t=*x;*x=*y;*y=t;

}

main()

{int a=1,b=2,*pa,*pb;

pa=&a;pb=&b;

swap(pa,pb);

printf("%d,%d",a,b);

}

void不是无返回值的么,这个程序怎么理解?

void swap(int *x,int *y)

{int *t;

t=x;x=y;y=t;

}

main()

{int a=1,b=2,*pa,*pb;

pa=&a;pb=&b;

swap(pa,pb);

printf("%d,%d",a,b);

}

第一个程序实现了数的交换,为什么第二个不能?

最佳答案

2019-10-06 06:54

这里的void就是没有返回值的意思,实现变量值交换是通过指针来实现的

第一个修改了指针指向位置的值,所以实现了变量值交换

第二个只是交换了指针形参,并没有交换\指向位置的值,所以还是原来的

全部回答

1楼

2019-10-06 10:56

是无返回值

比如

void add(int x,int y)

{

printf("%d",x+y);

}假设x=1,y=2

在屏幕上输出 3

int add(int x,int y)

{

return x+y;//返回值是x+y

}

就要如下用

int a;

a=add(1,2);//将返回值1+2赋给a

printf(“%d”,a);

在屏幕上输出 3

2楼

2019-10-06 09:50

在 第一个 void方法中,没有返回值,那是参数值, 第二个中掉了个(*)

因为传参数是传给方法中申明的变量中的(*x 和*Y 中)

3楼

2019-10-06 08:33

void swap(int *x,int *y) //传值:将pa拷贝给x,将pb拷贝给y,因为是拷贝,所以x与pa,y与pb其实是没有关系的,x与y的改变对pa与pb没有影响。函数的作用:将行参x,y的值互换,对实参完全没有影响。

{int *t;

t=x;x=y;y=t;

}

main()

{int a=1,b=2,*pa,*pb;

pa=&a;pb=&b;

swap(pa,pb);

printf("%d,%d",a,b);

}

void swap(int *x,int *y)//传值:将pa拷贝给x,将pb拷贝给y,所以x的值等于pa,也等于a的地址,对*x的操作就是对a的操作

{int t;

t=*x;*x=*y;*y=t;

}

main()

{int a=1,b=2,*pa,*pb;

pa=&a;pb=&b;

swap(pa,pb);

printf("%d,%d",a,b);

}

我要举报

如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

大家都在看

推荐资讯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值