首页 > 解决方案 > 混淆 C++ 中的 & 和 *

问题描述

我刚学过C++,不懂下面的:

代码部分:

int *i = new int;
*i = 0;
int &j = *i;
j++;

问题:最后一行的含义是:j++
答:将所指向的值i加一。

我的困惑:
我不确定int &j = *i;

j和指针有什么关系ij是指针还是其他?

标签: c++pointersreference

解决方案


我不确定 int &j = *i; 的含义 j和指针i有什么关系?j是指针还是其他?

int &j正在声明一个变量j、类型int&或整数引用(请参阅什么是 C++ 中的引用变量?)。

int &j = *i将地址处的值i赋给引用变量j。因此,无论何时修改j,您都会进行修改*i(反之亦然)。

另请参阅:C++ 中的指针变量和引用变量有什么区别?


推荐阅读