当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《更改指向数组的指针以获取特定的数组元素》经验,为你挑选了1个好方法。

我理解指针和引用的整体含义(或者至少我认为我这样做),我也理解当我使用new时我会动态分配内存.

我的问题如下:

如果我要使用cout << &p,它将显示"虚拟内存位置" p.有没有办法可以操纵这个"虚拟内存位置"?

例如,以下代码显示了ints 的数组.

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

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

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

KTC.. 8

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

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

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

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



1> KTC..:

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

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

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

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

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有