当前位置:编程学习 > C/C++ >>

用调用交换两个整型变量的值,求找错

#include<stdio.h> main() { int a=20,b=30; change(a,b); printf("a=%d b=%d\n",a,b); } int change(int x,int y) { int t; t=x;x=y;y=t; return 0; } 求指教
追问:运行了,貌似还不行啊
其他:楼上说的对,传入引用才能改变变量的值,int change(int &x, int &y) 首先看你这个程序:
#include<stdio.h>
main()
{
int a=20,b=30;
change(a,b);
printf("a=%d b=%d\n",a,b);
}
int change(int x,int y)
{
int t;
t=x;x=y;y=t;
return 0;
}

我感觉你是想用C语言写,而不是采用C++。所以你想通过函数交换数值,只能用C语言的指针,引用是C++中的新特性。
我看你的程序,存在两个错误,一个是在main函数前没有函数声明,二是函数没有采用指针,三是函数main没有注明返回值类型。

这样修改就可以了:


#include<stdio.h>
int change(int *x, int *y);
int main()
{
int a=20,b=30;
change(a,b);
printf("a=%d b=%d\n",a,b);
}
int change(int * x,int * y)
{
        int t;
        t = *x;
        *x = *y;
        *y = t;
        return 0;
}

补充说明一点:
这个change函数需要做的是交换两个数值,其实不需要返回值,可以写成这样:

void change (int * x, int * y)
{
        int t;
        t = *x;
        *x = *y;
        *y = t;
} 你没声明。。。而且你交换的只是x和y的值,函数退出后x,y的值会释放掉 #include<stdio.h>
int change(int &x,int &y);
void main()
{
 int a=20,b=30;
 change(a,b);
 printf("a=%d b=%d\n",a,b);
}
int change(int &x,int &y)
{
 int t;
 t=x;x=y;y=t;
  return 0;
}
 
 
你的程序有三个小问题,1用函数调用的方式必须用引用才能改变变量的值,2你的main函数没有指明类型,3函数调用在函数定义之前的话必须提前声明     希望采纳  谢谢 

上一个:C++小问题 高分在线求解答!!!
下一个:C++ 指针数组删除报错

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,