#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 函数内也改变了(因为他们就是同一个变量)。
这样说,还有哪里有疑问的呢?
- 4 回答
- 0 关注
- 1187 浏览
添加回答
举报
0/150
提交
取消