prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 11.24

为什么我不能对 void * 进行算术运算?void *指针执行算术运算?


编译器不知道所指向对象的大小。(请记住,指针算术总是根据所指向对象的大小进行的;另请参见问题 4.4。)因此,不允许对 void * 进行算术运算(尽管某些编译器允许将其作为扩展)。在执行算术运算之前,请将指针转换为 char * 或您尝试操作的指针类型(但另请参见问题 4.516.7)。void *'s 是不允许的(尽管某些编译器允许它作为扩展)。在执行算术运算之前,将指针转换为char *或您要操作的指针类型(但另请参见问题 4.516.7)。

参考文献:ISO Sec. 6.1.2.5, Sec. 6.3.6
H&S Sec. 7.6.2 p. 204


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管