c++ - 使用指针访问数组的值

标签 c++ arrays pointers

我们知道我们可以使用指针动态创建变量,例如:

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/

相关文章:

c++ - 同步启动失败。错误 : 0x2 ;When starting reading from 2 cameras PTGrey

c++ - 关于构造函数和运算符的一些基本问题

c++ - 使用 MFC 拦截来自 child 的 child 的消息

C - fscanf 未从文本文件中正确读取数字

c - 字符串中 "*p"和 "p"的格式说明符 %s 和 %c 之间的差异

c++ - 是一个二叉树 BST 但只有右 child 才允许重复

c - C 中的结构体和指针

arrays - Swift 1/2 自动完成字段不区分大小写

javascript - Typescript:创建一个空的二维数组,然后在不同的位置插入值

c++ - 带有指针参数的函数模板重载决策