为了账号安全,请及时绑定邮箱和手机立即绑定

C语言交换两个数字?

C语言交换两个数字?

阿波罗的战车 2019-02-07 11:07:57
#include<stdio.h>void swap(int &x, int &y){int t;t=x; x=y; y=t;}void main(){int a=3, b=4;swap(a,b);printf("a=%d b=%d",a,b);} 为什么 &x,&y是整形?为什么有时候*a *b也能是整形???这是我自己写的 为什么return有错误呢?#include<stdio.h>int swap(int,int);main(){int a,b;scanf("%d%d",&a,&b);swap(a,b);printf("%d %d",a,b);} int swap(int x,int y){int t;t=x,x=y,y=t;return;}还有 void swap(int,int) 与int swap (int,int)有什么区别吗?
查看完整描述

4 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

函数调用时注意参数
参数都是局部变量,在 main 函数里调用 swap 后,
进入 swap 内,其变量都是局部的(当这个函数结束后,变量会被系统收回,暂且这么理解吧),
这样 swap 结束后,你的 x ,y 局部变量就会被系统回收,所作的改变只是在 swap 函数里面的改变,并不能影响 main 函数内的値。
要想改变 main 函数内的値,就需要使用指针(就是将main 函数变量的地址传到 swap 函数内),之后使用指针操作(就是通过地址来使用 main 函数内变量的値),此时通过地址改变的値就是 main 函数内也改变了(因为他们就是同一个变量)。
这样说,还有哪里有疑问的呢?



查看完整回答
反对 回复 2019-03-22
  • 4 回答
  • 0 关注
  • 1187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信