gpt4 book ai didi

c++ - 星号之前还是之后?

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:48 25 4
gpt4 key购买 nike

这是我正在运行的:

pam_get_item(pamh, PAM_USER,(const void**)&pam_user);

pamh 是一个对这个问题不重要的结构,pamuser 是一个空指针。此代码编译并成功执行。但是,这不会:

pam_get_item(pamh, PAM_USER,(const **void)&pam_user);

为什么星号前后的含义不同?谢谢!

最佳答案

星号是构成类型名称的组成部分。以及类型名称的组成部分的顺序,影响它实际是什么类型。

具体来说,星号会修改类型,使其成为指向左侧命名的任何类型的指针。所以,

void*

这是一个指向 void 的指针(即指向可以是任何类型的内存区域的指针)。

const void*

这是一个指向 const void 的指针(即指向一个内存区域的指针,该内存区域 const,或者从这个角度来看应该被认为是 const指针)。

const void**

这是一个指向 const void* 的指针。

因此,考虑到这一点,您希望它是什么:

const **void

指向 const 指针的指针的 void?毫无意义。

关于c++ - 星号之前还是之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22878058/

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