小编RAM*_*PTA的帖子

如何在GCC中发生无效指针算术运算

int main()  
{  
    int a;  
    void *p;  
    p = &a;  
    printf("%ld\n",(long)p);  
    p = p+1;  
    printf("%ld\n",(long)p);  
}  
Run Code Online (Sandbox Code Playgroud)

在这个程序中,p+1只是将p的值递增1.我知道void pointer arithmetic是不可能的C,所以GCC隐式地这样做.如果是的话,那就是它char pointer.另外,dereferencing如果void指针隐式执行指针运算,为什么不可能使用void指针.

c gcc pointers void-pointers pointer-arithmetic

2
推荐指数
1
解决办法
2812
查看次数

标签 统计

c ×1

gcc ×1

pointer-arithmetic ×1

pointers ×1

void-pointers ×1