C++引用概念简介

来源:互联网 发布:linux openssl 升级 编辑:程序博客网 时间:2024/05/16 17:13

今天了解了C++中引用的概念。引用可以简单理解成被引用对象的"绰号"。引用的主要功能是传递函数的参数和返回值。

Eg. 

int a = 5;

int b = 10;

int &c = a;

c = b; 

此时,c和a的值都为10。

关于引用的规则,引用和指针之间的比较,以及值传递,指针传递和引用传递的详细介绍可以参考如下链接:

http://tianyou8.blog.hexun.com/48362947_d.html#

我用visual studio 2010写了个关于引用的小程序,源代码如下:

#include<stdio.h>

void reference( int &a )
{
a = 10;
}

int main( void )
{
int n = 5;
printf( "Before calling function reference, n = %d\n", n );
reference( n );
printf( "After calling function reference, n = %d\n", n );
return 0;
}

当源文件的拓展名为.c时,程序编译第二行会报错。这说明visual studio 2010会调用C语言编译器(gcc)来编译程序,而C语言是不支持引用的。

当我将源文件的拓展名改为.cpp时,程序可以编译成功,运行结果如下所示:

Before calling function reference, n = 5

After calling function reference, n = 10

所以,visual studio 2010会根据源文件的拓展名来选择相应的编译器进行编译。

C++版源代码如下所示:

#include<iostream>
using namespace std;

void reference( int &a )
{
a = 10;
}

int main( void )
{
int n = 5;
cout << "n = " << n << endl;
reference( n );
cout << "n = " << n << endl;
//printf( "After calling function reference, n = %d\n", n );
return 0;
}

原创粉丝点击