【移动应用开发技术】C++ 引用_第1页
【移动应用开发技术】C++ 引用_第2页
【移动应用开发技术】C++ 引用_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】C++引用

C++的引用个人感觉像是C#/Java等高级语言的传址的开端。也是C的指针概念上的一个拓展。现对C++引用进行一定的介绍:一

,引用的申明#include

<iostream>

using

namespace

std;

int

main()

{

int

a

=

1;

int

&po

=

a;

po

=

2;

cout

<<

"a的值为

:"

<<

a

<<

endl;

return

0;

}得到的结果为:可以看到,当对po进行赋值2的时候,a的值也变为了2.其实po和a指向的是同一块内存。这里po和指针(*)很像。引用(&)和指针(*)的区别:①,引用&申明时就必须初始化。如声明int的引用int&po=a;直接要为其赋值a(int类型)。②,引用没有地址的概念(没有保存地址,而是直接指向内容,所以它的效率比指针要高)。二,其他类型的引用申明①:数组:#include

<iostream>

using

namespace

std;

int

main()

{

int

a[2][3];

int

(&po)[2][3]

=

a;//申明一个引用,必须要对其进行初始化

po[0][1]

=

3;

cout

<<

"a[0][1]的值为:"

<<

*((*a)+1)

<<

endl;

return

0;

}得到的结果为:注意数字的引用申明②:指针:#include

<iostream>

using

namespace

std;

int

main()

{

int

a

=

4;

int

*p

=

&a;

int

*

(&po)

=

p;

*po

=

5;//此时

引用po和指针p的用法是一样的

cout

<<

"a的值为:"

<<

*p

<<

endl;

cout

<<

"a的值为:"

<<

*po

<<

endl;

return

0;

}执行结果为:关于结构体的申明和int是一样的额(重点)关于引用参数:#include

<iostream>

using

namespace

std;

void

fun(

int

&a)

{

a

=

2;

}

int

main()

{

int

a

=

1;

fun(a);

cout

<<

"a的值为

"

<<

a

<<

endl;

return

0;

}fun函数如果用C#来写的话,应该是fun(refinta),和C#一样,当对fun的参数a进行重赋值时,main中实参a的值也会发生改变这和C的指针效果是一样的,不一样的是:C++传引用比C传指针的效率要高,因为引用没有保存地址,它直接指向内容。我把C的传指针实现一下:#include

<iostream>

using

namespace

std;

void

fun(

int

*a)

{

*a

=

2;

}

int

main()

{

int

a

=

1;

fun(&a);

cout

<<

"a的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论