C语言的小程序问题?

来源:百度知道 编辑:UC知道 时间:2024/05/10 20:13:05
用指针写一个swap函数,交换两个整数 a和b的值。打印交换前后a,b的值。
我写的,难道我的理解有问题???怎么编译不过去啊。
#include<iostream.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void main()
{
int x=5,y=7;
printf("%d,%d\n",x,y);
swap(x,y);
printf("%d,%d\n",x,y);
}

如果用引用写呢???
如果是用引用怎么写???

有两个地方有问题:
1、这里用到了C语言中的printf函数,所有要加头文件stdio.h在代码的开头写上 #include<stdio.h>
2、swap函数的形参是指针变量,所以在调用这个函数的时候要把地址传过去(即实参要是地址),所以不能写成swap(x,y),而要写成swap(&x,&y);这是&是取地址符号。

试一下这个程序,我试过可以:
#include<stdio.h>
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void main()
{
int x=5,y=7;
printf("%d,%d\n",x,y);
swap(&x,&y);
printf("%d,%d\n",x,y);
}

还有你用C语言,应该加stdio。h头文件

头文件缺#include<stdio.h>
可以没有#include<iostream.h>
swap函数调用时参数是地址,应为swap(&x,&y);

用引用写为:
#include<stdio.h>

void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void main()
{
int x=5,y=7;
printf("%d,%d\n",x,y);
swap(x,y);
printf("%d,%d\n",x,y);
}

swap(&x,&y);
取地址传过去,,
引用可以用:
void swap