以下编译:
receivedTurnEventFor match
数组访问(括号表示法)如何在一行中返回int类型,而在另一行中返回int引用?那么数组括号访问的返回类型到底是什么?
我是c ++的新手,原谅我的无知。
答案 0 :(得分:1)
b
是对v[0]
的引用,因此其地址相同,即 b
为v[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