p = 数组与 p = &array[0] 相同吗?
Is p = array the same as p = &array[0]?
int numbers[20];
int * p;
下面的两个作业是一样的吗?
p = numbers;
p = &numbers[0];
是的,两者都是一样的。
在这种情况下,数组的名称衰减为指向其第一个元素的指针。
因此
p = numbers; //Name of the array
与:
p = &numbers[0]; //Address of the First Element of the Array
是的,它们是相同的。当在右值上下文中调用数组的名称时,它会衰减到指向其第一个元素的指针。
numbers[0] is equal to *number and equal to *(number+0)
numbers[x] = *(number+x)
所以 &(*(数字+x( ( = 数字+x,这是第 x 个元素的地址
相关文章:
- 检查输入 std::array 指针数据是否等于某个常量数组
- 基于 std::array 的多维数组
- std::array与C样式数组用于连续内存
- 具有静态 std::array 的神经网络比使用动态 C 数组的神经网络慢
- 不要声明 C 样式数组,而是使用 std::array<>
- 为什么我不能将 C 样式数组复制到 std::array?
- 创建 2D 数组类:如何访问 2D 数组类(如 array[x][y))中的元素
- 尝试使用 Array 类的模板构造整数数组时,错误:为什么数组类型"int [5]"不可分配,
- 为什么span的数组和std::array构造函数与其容器构造函数不同
- 键入 trait 以获取 std::array 或 C 样式数组的元素类型
- 原始数组和 std::array 在 clang++ 和 VC++ 上的不同迭代器行为
- 使用 std::array vs 数组传递对象数组
- 我无法将'2D array whit bool'转换为"空 2D 数组布尔值"(用于生命游戏)
- 为什么 C 数组比 std::array 快得多?
- 为什么在使用堆叠 std::array 声明多维数组时需要"双括号"?
- 使用索引数组订购 ArrayFire Array 的最佳方式
- NAPI AsyncWorker:将指针数组转换为NAPI::array,而不使用大的for
- 从std::array获取对原始数组的引用
- 获取 std::array 底层数组内存大小的最简单方法?
- 数组中的值之和返回内存地址,除非sizeof(array)/2