C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了解除引用的指针构造的地址大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在unqlite c库中,我找到了以下代码
pObj = Jx9VmReserveMemObj(&(*pVm),&nIdX);

其中pVm是:

typedef struct Jx9_vm Jx9_vm;
Jx9_vm *pVm

和被调用函数声明为:

Jx9_value * Jx9VmReserveMemObj(Jx9_vm *,sxu32 *);

什么构造&(* pVm)用于调用而不仅仅是pVm? &(* pVm)是否相当于pVm?

解决方法

引用C11,章节§6.5.3.2,地址和间接操作符

所以,是的,它们是等价的.

但是,可以使用此构造来检查针对指针类型的参数类型.从一元*运算符的属性,

所以,构造&(* pVm)

>如果pvm是指针或数组名称,那就没问题.
如果pvm是非指针类型变量,>将@L_874_14@编译器错误.

有关代码示例,请参见the other answer by Alter Mann.

另外一个区别(通常)是,可以分配pVm(可以用作赋值运算符的LHS),但是&(* pVm)不能.

大佬总结

以上是大佬教程为你收集整理的解除引用的指针构造的地址全部内容,希望文章能够帮你解决解除引用的指针构造的地址所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。