gpt4 book ai didi

c++ - 更改指向数组的指针以获取特定的数组元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:54 25 4
gpt4 key购买 nike

我理解指针和引用的总体含义(或者至少我认为我理解),我也理解当我使用 new 时我是在动态分配内存。

我的问题如下:

如果我使用 cout << &p , 它会显示 p 的“虚拟内存位置” .有没有一种方法可以操纵这个“虚拟内存位置?”

例如,下面的代码显示了一个数组 int

如果我想显示 p[1] 的值我知道 p 的“虚拟内存位置” ,我能以某种方式做“&p + 1”并获得p[1]的值吗?与 cout << *p , 现在将指向数组中的第二个元素?

int *p;
p = new int[3];

p[0] = 13;
p[1] = 54;
p[2] = 42;

最佳答案

当然,您可以操纵指针来访问数组中的不同元素,但是您需要操纵指针的内容(即 p 指向的地址),而不是指针本身的地址.

int *p = new int[3];
p[0] = 13;
p[1] = 54;
p[2] = 42;

cout << *p << ' ' << *(p+1) << ' ' << *(p+2);

每次加法(或减法)表示数组中的后续(先前)元素。如果 p 指向地址为 12345 的 4 字节变量(例如 int 在典型的 32 位 PC 上),则 p+1 将指向 12349,而不是 12346。请注意,您要更改的值在取消引用它以访问它指向的内容之前 p 包含的内容。

关于c++ - 更改指向数组的指针以获取特定的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/107294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com