C++ C++;参考资料-有些东西我不清楚

C++ C++;参考资料-有些东西我不清楚,c++,reference,C++,Reference,请参阅以下代码: int x = 7; int *p = &x; int &y = x; x = 7; *p = 7; y = 7; 当x=42时 x = 42; *p = 42; y = 42; 当y=73时 x = 73; *p = 73; y = 73; 为什么x=73?在许多方面,引用可以被视为“别名”,是同一事物的另一个名称,因此x和y是“同一事物,只是不同的名称”。显然,使用y而不是x没有多大意义,但是如果你有一件长而复杂的事情,比如 person indi

请参阅以下代码:

int x = 7;
int *p = &x;
int &y = x;

x = 7;
*p = 7;
y = 7;
x=42时

x = 42;
*p = 42;
y = 42;
y=73时

x = 73;
*p = 73;
y = 73;

为什么x=73?

在许多方面,引用可以被视为“别名”,是同一事物的另一个名称,因此
x
y
是“同一事物,只是不同的名称”。显然,使用
y
而不是
x
没有多大意义,但是如果你有一件长而复杂的事情,比如

 person individual;

 if (individual.scores.mathtest[testno] > 75 &&
     individual.scores.mathtest[testno] <= 100)
 {
    individual.scores.mathtest[testno] = 80;
 }
现在,
*p
不再是
x
的别名,而是
z
的别名。如果我们有:

int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
int *p = &a[0];
我们将
*p
作为数组中元素
a[0]
的别名,我们可以使用

p++; 

a[0]
移动到
a[1]

,因为
y
基本上只是变量
x
的别名。
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
int *p = &a[0];
p++;