返回数组访问类型

时间:2016-12-31 03:58:47

标签: c++ arrays pointers reference

以下编译:

receivedTurnEventFor match

数组访问(括号表示法)如何在一行中返回int类型,而在另一行中返回int引用?那么数组括号访问的返回类型到底是什么?

我是c ++的新手,原谅我的无知。

2 个答案:

答案 0 :(得分:1)

b是对v[0]的引用,因此其地址相同,即 bv[0] 。但a是另一个变量,因此a等于v[0],但 a不是v[0] ,其地址是不一样的。

对于您的问题,如果您有一些c语言的经验,您可以轻松编写类似的表达式 if(&v[0]==&b) printf("b is a reference to int");

if(&v[0]!=&a) printf("a is an int");

判断。

答案 1 :(得分:0)

b是一个int引用。因此,它是v[0]的别名,因此是一个int。另一方面,a获取v[0]值的副本。因此,如果v[0]发生变化,则a无法获取新值,但b会获得新值。

假设在您的代码之后,您执行以下操作:

v[0] = 7;
cout << "a: " << a << "\n";
cout << "b: " << b << "\n";

输出将是:

a: 0
b: 7