c++菜鸟错误笔记3关于传值与引用的问题
2013-03-13 21:36
316 查看
错误例子:
#include <iostream>
using namespace std;
void swap(int,int);
int main()
{
int x=3,y=4;
cout<<"在main函数中,调用swap函数之前,x的值为"<<x<<endl;
cout<<"在main函数中,调用swap函数之前,y的值为"<<y<<endl;
swap(x,y);
cout<<"在main函数中,调用了swap函数之后,x的值为:"<<x<<endl;
cout<<"在main函数中,调用了swap函数之后,y的值为:"<<y<<endl;
}
void swap(int x, int y)
{
int z;
z=x;
x=y;
y=z;
}
错误原因:传值函数只能传值,不能调换。引用函数可以传值,也可以调换
修改之后的例子:
#include <iostream>
using namespace std;
int x=3,y=4;
void swap(int &x,int &y);
int main()
{
cout<<"在main函数中,调用swap函数之前,x的值为"<<x<<endl;
cout<<"在main函数中,调用swap函数之前,y的值为"<<y<<endl;
swap(x,y);
cout<<"在main函数中,调用了swap函数之后,x的值为:"<< x<<endl;
cout<<"在main函数中,调用了swap函数之后,y的值为:"<< y<<endl;
}
void swap(int &x , int &y)
{
int z;
z=x;
x=y;
y=z;
}
#include <iostream>
using namespace std;
void swap(int,int);
int main()
{
int x=3,y=4;
cout<<"在main函数中,调用swap函数之前,x的值为"<<x<<endl;
cout<<"在main函数中,调用swap函数之前,y的值为"<<y<<endl;
swap(x,y);
cout<<"在main函数中,调用了swap函数之后,x的值为:"<<x<<endl;
cout<<"在main函数中,调用了swap函数之后,y的值为:"<<y<<endl;
}
void swap(int x, int y)
{
int z;
z=x;
x=y;
y=z;
}
错误原因:传值函数只能传值,不能调换。引用函数可以传值,也可以调换
修改之后的例子:
#include <iostream>
using namespace std;
int x=3,y=4;
void swap(int &x,int &y);
int main()
{
cout<<"在main函数中,调用swap函数之前,x的值为"<<x<<endl;
cout<<"在main函数中,调用swap函数之前,y的值为"<<y<<endl;
swap(x,y);
cout<<"在main函数中,调用了swap函数之后,x的值为:"<< x<<endl;
cout<<"在main函数中,调用了swap函数之后,y的值为:"<< y<<endl;
}
void swap(int &x , int &y)
{
int z;
z=x;
x=y;
y=z;
}
相关文章推荐
- 【菜鸟C++学习笔记】24. 常见的引用注意问题
- C++关于参数为const引用类型的函数调用参数成员函数的一个问题
- 关于C++模版的连接错误问题
- QML与c++交互学习笔记(六) 关于qt c++中创建对象,QML获取此对象数据问题
- java中关于参数传递问题的解释(传值与传引用的若干问题的解释)
- Unity3D关于内存优化,内存泄露、多线程、引用C++的dll的问题研究
- 关于C++模版的连接错误问题
- 关于C++模板的链接错误问题
- 关于winodows下编程c++遇到的引用文件路径问题
- C/C++中关于地址、指针和引用变量的学习笔记(七) : sizeof和typedef
- 关于winodows下编程c++遇到的引用文件路径问题
- spark菜鸟笔记-关于spark安装过程中遇到的问题总结
- 关于c++智能指针share_ptr的引用问题
- C/C++中关于地址、指针和引用变量的学习笔记(六) : const和void
- 一个菜鸟处理关于ajax向后台传值的问题
- QML与c++交互学习笔记(六) 关于qt c++中创建对象,QML获取此对象数据问题
- Zephyr应用笔记:关于支持zephyr-v1.11.0版本mcuboot加密编译错误问题
- 关于ajax传值错误问题
- c++关于#include <afx.h>头文件错误问题
- 关于C++中引用&问题