void指针和数组指针之间的转换
caculas22 人气:1
由于void* 可以被任何指针赋值,所以以void*作为函数参数可以使得接口更容易接受不同类型的参数,不过需要注意的时,实际操作时还需要利用强制类型转换,将指针转换为原类型,否则在内存上会有问题。
一般情况下void*不支持解引用,同样不支持运算。(因为无法清楚知道所指地址的对象占用了多大的内存)
*以下为数组指针的一些总结(T可参考int)*
|表达式|a指针指向|解释|维数|数组中元素类型|
|-|-|-|-|-|
|T* a;|T*|指向整数的指针|1维|整数指针|
|T a[m];|T(*)|指向整数数组头|m维|整数|
|T* a[m];|T* (*)|指向整数的指针数组|m维|指针->整数|
|T a[m][n]|T(*)[n]|指向整数数组的指针数组|m维|指针->整数数组|
下面考虑函数调用void*参数再转化为数组指针的几个例子:
```C++
#include
加载全部内容