#include<stdio.h>
int main(int argc,char *argv[])
{
int i=10;
void *k;
k=&i;
k++;
printf("%p\n%p\n",&i,k);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
++是对void*的合法操作吗?有些书说它不是,但K&R没有说任何关于void*算术的内容(K&R 2/e的第93,103,120,199页)
请澄清.
PS:GCC至少在k ++中没有抱怨.
如何以单字节精度可移植地执行指针运算?
请记住:
char 在所有平台上都不是1个字节sizeof(void) == 1 仅作为GCC的扩展名提供c compiler-construction portability void-pointers pointer-arithmetic