我看到一段代码,其中有一条语句 (char *)(emsg+1)
被给出,
我猜 (char *) emsg
可能是一个字符串,但是 + 1
在这里做什么?
最佳答案
emsg
是指向某种类型(例如 int
)的指针。 emsg + 1
指针加1,即指向初始地址+ sizeof(int)
。然后,(char*) (emsg + 1)
是一个转换,即最终结果被转换为一个 char*
指针,所以你最终得到一个指针-char 指向初始地址 + sizeof(int)
.
通常,char*
是指向字符的指针,即类似于 C
的零终止字符串,但情况并非总是如此。当你想“提取”可寻址内存的最小单元时,你经常将指针转换为 char*
,因为在大多数机器上 char*
是指向底层类型的指针一个字节 (char
).
关于c++ - (char *) (msg +1) 这个 +1 带我们去哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29085751/