我可以对指向 void 指针的指针使用指针算术吗?

2023-11-21

我知道你不能对 void 指针使用指针算术,但是理论上你可以对指向 void 指针的指针进行指针算术吗,因为sizeof(void *)会产生一个指针在您的系统上占用多少字节的答案?


不允许进行指针运算void*因为void是一个不完整的对象类型。

来自 C 委员会草案 N1570:

6.5.6 加法运算符
...
2. 对于加法,两个操作数都应具有算术类型,或者一个操作数应是指向完整对象类型的指针另一个必须是整数类型。

但这是允许的void**因为void*不是不完整的对象类型。它就像一个指向字符类型的指针。

6.2.5 类型
...
19. 的空型包含一组空值;它是一个不完整的对象类型无法完成。
...
28. 指向 void 的指针应具有相同的表示和对齐要求作为一个 指向字符类型的指针.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以对指向 void 指针的指针使用指针算术吗? 的相关文章

随机推荐