指针数组说明
Pointer Array Clarification
*变量[0]和变量[0][0]是一回事吗? 第一个是指向数组第一个元素的指针。第二个是数组的第一个元素,它由指向数组的第一个元素指向。它们是否指向相同的元素?
根据 C 标准(6.5.2.1 数组下标(
2 后缀表达式后跟方括号中的表达式 [] 是数组对象的元素的下标指定。这 下标运算符 [] 的定义是 E1[E2] 与 (*((E1(+(E2(((。由于适用于 二进制 + 运算符,如果 E1 是数组对象(等效于指针 数组对象的初始元素(,E2 是一个整数, E1[E2] 表示 E1 的第 E2 元素(从零开始计数(。
和(6.3.2.1 左值、数组和函数指示符(
3 除非是 sizeof 运算符或一元运算符的操作数和 运算符,或者 是用于初始化数组的字符串文本,一个 类型为"类型数组"的表达式将转换为 类型为"指向类型的指针"的表达式,该表达式指向初始 元素,并且不是左值。如果数组对象 具有寄存器存储类,行为未定义。
此表达式
variable[0]
生成一个数组。将数组*
一元运算符应用于它,将其转换为指向其第一个元素的指针。所以
*variable[0]
相当于variable[0][0]
另一方面,根据第一个引号的表达式
variable[0][0]
等效于表达式*( variable[0] + 0 )
,而表达式又等效于*( variable[0] )
或只是*variable[0]
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 有没有办法在c ++中清除空数组,请检查下面的代码以获取说明
- 指针数组说明
- 返回对特定尺寸数组的引用,而无需明确说明返回类型中的大小
- C++数组与矢量性能测试说明
- 寻找有关函数定义和原型中数组引用的说明
- 对于原始数组和std::vector,明显没有对下标进行过一次结束的说明.这个问题已经得到了决定性的解决吗?