C++值传递、引用传递、指针变量传递参数的比较

来源:互联网 发布:平面设计有什么软件 编辑:程序博客网 时间:2024/05/16 02:51
// test1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "iostream"using namespace std;/** *1.值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值, *从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入, *不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。 */void Add(int a){a = a+3;}/** *2.如果函数按引用方式传递,在调用函数中修改了参数的值,其改变是影响到实参 */void Add2(int &a){a= a+3;}/** *3.使用指针变量传递参数与引用传递效果一样,当对形参的指向操作时,就相当于对实参本身进行的操作 */void Add3(int *a){*a +=3;}void main(){int a = 5;Add(a);            //值传递不改变实参的值,所以a仍然是5cout<<"测试值传递结果:"<<a<<endl;int &b= a;Add2(b);  //引用传递会影响实参,所以结果是8cout<<"测试值传递结果:"<<a<<endl;int *c = &a;Add3(c);  //指针传递传递会影响实参,所以结果是11,注释Add2可得结果亦为8cout<<"测试值传递结果:"<<a<<endl;}

0 0
原创粉丝点击