gpt4 book ai didi

c - 在 ((struct str_name*)p)->str_dataitem 中使用 const void *;

转载 作者:行者123 更新时间:2023-11-30 14:54:58 25 4
gpt4 key购买 nike

我是 C/C++ 的初学者,我无法理解这段代码到底做了什么:

const void *p; //declaration of p used above

提前致谢!!

最佳答案

指针在内存中存储地址(位置),因此存储在指针本身中的数据(位置)并不取决于存储在内存中该位置的实际类型。

当你声明一个void *类型的指针时,它基本上意味着该指针存储可以是任何类型的变量/对象的地址(int float 结构等)。在不知道其中存储的数据类型的情况下直接访问存储在 void 指针中的数据是没有意义的。

当您使用时

((struct str_name*)p)->str_dataitem;

您明确告诉编译器,它应该将 p 处(及之后)的内存视为存储 struct str_name 类型的对象并访问 该结构中的 str_dataitem 成员存储在 p 中。

关于c - 在 ((struct str_name*)p)->str_dataitem 中使用 const void *;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46376420/

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