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,如果有时候不要感到惊讶,无效指针算法"正常工作"而没有任何错误.
归档时间: |
|
查看次数: |
211 次 |
最近记录: |