gpt4 book ai didi

c++ - 向指针添加偏移量

转载 作者:可可西里 更新时间:2023-11-01 18:25:54 26 4
gpt4 key购买 nike

如果我有一个指向对象的指针,并且我想获得一个指向对象的指针,即指针之后 16 字节的对象,我该如何将 16 字节的偏移量添加到指针?

此外,32 位系统中的内存地址类似于 0x00000000。如果我将 0x00000001 之类的地址更改为 0x00000002,将跳过多少字节?

最佳答案

指针计数字节,因此要指向下一个字节,您需要将指针的值更改为 1。然而,指针算法计算指针指向的对象,并且递增指针会增加其值的大小它的指针类型。如果要指向字节,请使用 char 指针,因为 char 的大小根据定义为 1,并且 char 指针上的指针算法是让你指向字节:

T * p  = get_pointer();

char * cp = reinterpret_cast<char*>(p);

cp += 16;

向 char 类型和从 char 类型转换指针不构成类型双关,并且是标准明确允许的。但是,您不得使用生成的指针来访问实际上不在该地址的任何对象。

关于c++ - 向指针添加偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211923/

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