猿问

C语言交换两个数字?

#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)有什么区别吗?

阿波罗的战车
浏览 1188回答 4
4回答

大话西游666

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