繁体   English   中英

这个 C++ 指针语法是什么意思?

[英]What does this C++ pointer syntax mean?

假设data是指向向量使用的 memory 数组的直接指针。

那么, &data[index]是什么意思呢?

我猜data[index]是指向 position index处数组特定元素的指针,但是&data[index]是该指针的地址吗?

从计算类型开始。

假设data是一个T* 指向T数组的第一个元素的指针。
那么data[index]是一个T ,并且那个T是数组的一个元素。
由于data[index]是一个T&data[index]是一个T* 它是指向数组元素data[index]的指针。

此外,如果data是一个指针, data[index]相当于*(data + index) ,所以&data[index]相当于&*(data + index)&*相互抵消,你留下&data[index] == data + index

&xx的地址。 x可以是数组中的元素。 如果data是向量data() (指向向量内部数组的第一个元素的指针),则data[index]是该向量index处的元素。

是的, &data[index]是指向向量index处的元素的指针。

下标operator[]的优先级高于operator&的地址。 因此,由于运算符优先级&data[index]等价于(分组为):

&(data[index]) //this is equivalent to the expression &data[index]

这意味着上面是指向数组index处的元素的指针。 这是因为data[index]为我们提供了索引index处的元素,因此应用运算符&的地址将为我们提供指向该元素的指针。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM