我们知道我们可以使用指针动态创建变量,例如:
int *p = new int(5);
我们可以使用 *
as 访问它的值
cout << *p;
但是数组的情况并非如此,请考虑以下代码:
int size_array = 5;
int * p = new int[size_array];
如果我们需要访问第一个元素的值,我们执行以下操作:
cout << p[0];
但是为什么我们不能像上面那样对动态变量执行相同的操作?即使用 *
:
cout << *p[0];
最佳答案
p[0]
是语法糖(对于数组):
*(p + 0)
这相当于:
*p
*p[0]
不起作用,因为它相当于:
**p
换句话说,取消引用指针/数组两次。
关于c++ - 使用指针访问数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59185973/