c++参数传递的三种方式

c++参数传递的三种方式

一般来说C++中参数传递有三种方式:值传递、指针传递、引用传递

1.值传递——传值

值传递是最常见的一种参数传递的方式,但是对初学者来说也最容易出错。如下例:

#include

void fun(int a,int b)

{

int temp;

temp=a;

a=b;

b=temp;

}

void main()

{

int m,n;

m=1;

n=2;

fun(m,n);

cout<

}

例子中fun()函数采用值传递的方式,传入的实参实际上是m、n的副本而非其本身,所以对副本的改变并不会反映到m、n本身上。

2.指针传递——传指针

使用指针传递需要先了解一下指针的有关概念,因为这里主要介绍关于参数的部分,所以废话不多说了,直接看例子:

#include

void fun(int * x)

{

*x+=10;

}

void main()

{

int n=0;

fun(&n);

cout<

}

fun()函数体内的x是指向外部变量n的指针,改变指针的内容将导致n的值得改变,所以n的值成为了10。

3.引用传递——传引用

引用相当于别名(绰号),比方说有人的名字是王小丽,她的绰号是“小小”。如果有人说“小小”几岁,实际上就是指王小丽几岁。

#include

void main()

{

int x;

int &y=x; //变量引用

y=99;

cout<<"x="<

}

程序中&y=x应当理解为y具有x的地址,即x与y具有相同的地址,地址相同了当然内容也相同了,所以y的值是99。比较:

对比参数的三种传递方式,可以发现“引用传递”和“指针传递”的性质一样,而书写方式像“值传递”。引用传递可以做的任何事指针也能够做到,因为指针能够毫无约束地操作内存中的东西,这种强大的功能背后也必将隐藏着巨大的危险,所以慎用指针。

剑指offer上判断平衡二叉树用的就是指针传递

相关推荐

热血江湖是哪个公司运营
beat365体育ios版下载

热血江湖是哪个公司运营

📅 06-29 👁️ 8853
免费下载动漫的十大网站
365足球直播无插件高清

免费下载动漫的十大网站

📅 07-02 👁️ 9177
怎么跳伞
365bet线上官网

怎么跳伞

📅 06-27 👁️ 7032
帮助中心
beat365体育ios版下载

帮助中心

📅 06-28 👁️ 2394
第570期:“无用之木”与“神奇软木”居然都是它?
365足球直播无插件高清

第570期:“无用之木”与“神奇软木”居然都是它?

📅 07-02 👁️ 9849
珍惜世界杯
365bet线上官网

珍惜世界杯

📅 07-02 👁️ 7598
win11系统玩魔兽争霸为什么会退出 win11电脑玩魔兽争霸总是闪退如何解决
重拾胶片魅力:VSCO Film 滤镜带你重返经典
beat365体育ios版下载

重拾胶片魅力:VSCO Film 滤镜带你重返经典

📅 06-30 👁️ 5470
北京故宫主要景点介绍:穿越历史长河,探寻故宫之美——一段关于皇家宫殿的梦幻之旅