【发布时间】:2011-04-01 04:34:07
【问题描述】:
当指向特定类型的指针(比如int、char、float、..)增加时,其值会增加该数据类型的大小。如果指向大小为x 的数据的void 指针递增,它如何指向前面的x 字节?编译器如何知道将x 添加到指针的值中?
【问题讨论】:
-
这个问题听起来好像它假设编译器(/运行时)知道指针设置为什么类型的对象,并将其大小添加到指针。这是一个完全的误解:它只知道地址。
-
"如果指向
x大小数据的void指针递增,它如何指向前面的x字节?"它没有。为什么有这些问题的人不能在提问之前测试它们 - 你知道,至少在他们检查它是否实际编译的最低限度上,这是没有的。 -1,不敢相信这得到了 +100 和 -0。
标签: c void-pointers pointer-arithmetic