关于void*与void**的区别

由于void就是不检查数据类型,所以,对于编译器来说, void* 和 void** ,甚至后面n个 * ,都是一样的.


问题的关键在于,让我们这些编程的人可以区分.


原则上,void* 可以是一个一级指针,二级指针,甚至是n级指针.
但我们的使用习惯是, 一个 * 代表一级指针,多级指针就用n个*表示.  


在实际使用的时候, 如果告诉你, void* 是一个n级指针,你不会觉得别扭吗?假如是一个多级指针,由于用void*表示,也由于别人使用的时候一个不小心当成1级指针来处理(这种错误非常容易出现,绝对不是小心一点就能避免的),bug就出现了.而且由于是void*类型,编译器不做检查,错误查找也非常麻烦.


所以,习惯上,实际使用的时候,多级指针还是用多个*表示的居多,这样看着也明白了,用起来也就不那么容易出错了.

猜你喜欢

转载自blog.csdn.net/xiaobaixiongxiong/article/details/83244793