第七章 C++编程之指针和引用
7.1 指针和引用的特点
指针是C语言的优势,同时也是难点,引用是变量的别名,指向同一个地址,所以使用引用可以修改值本身,下面看代码
以加法为例,对比传参、指针和引用的不同之处
代码1:
#include <iostream>
using namespace std;
int add_one(int a)
{
return a+1;
}
int add_one(int *a)
{
*a = *a+1;
return *a;
}
/*
//这种写法会导致使用时和int add_one(int a)的方法导致歧义,编译无法通过
int add_one(int &a)
{
a = a+1;
return a;
}
*/
int add_one_ref(int &a)
{
a = a+1;
return a;
}
int main(int argc,char**argv)
{
int a=0,ret;
ret = add_one(a);
cout << "transfer parameters:" << "a+1=" << ret <<" and " << "a = " << a << endl;
a = 0;
ret = add_one(&a);
cout << " pointer:" << "a+1=" << ret << " and " << "a = " << a << endl;
/*
a = 0;
ret = add_one(a);
cout << "3\ int add_one(int &a):\r" << "a+1=" << ret << "and " << "a = " << a << endl;
*/
a = 0;
ret = add_one_ref(a);
cout << " reference:" << "a+1=" << ret << " and " << "a = " << a << endl;
return 0;
}
7.2 小结
指针和引用传参可以修改变量本身的值,而变量传参无法修改被传入的值本身