shi*_*zou -5 c void-pointers pointer-arithmetic
除了能够解除引用之外void**,我不理解以下内容:
void * foo, **bar;
foo++;//error
bar++;//no error
Run Code Online (Sandbox Code Playgroud)
为什么不是第一次工作而第二次工作呢?有什么不同?
第一个片段
foo++;//error
Run Code Online (Sandbox Code Playgroud)
因为,foo是指针void,你不能有指针算术void *,void没有定义类型的大小.
第二个片段,
bar++;//no error
Run Code Online (Sandbox Code Playgroud)
因为,bar是指向指针的指针void.因此,允许算术运算,因为指向指针类型的指针的大小已被很好地定义.
FWIW,如果有时候不要感到惊讶,无效指针算法"正常工作"而没有任何错误.