我读了一本C书。 但是不能理解那句话
如果调用calloc成功,则返回指向内存中数组基类的void *类型的指针;
这里,如果指向类型为void *的指针指向内存中数组的基数,那么array [0]的类型为void?
我想知道什么意思……
谢谢大家阅读我的问题,希望得到答复!
我可以看出它是多么诱人,因为int *
指向int
,那么void *
应该指向void
。 但事实并非如此。 void *
和void
之间确实没有任何有用的关系,因此最好将它们视为单独的概念。
void *
in C表示指向未指定类型的对象的指针。 如果你熟悉它,你可以把它想象成Java Object
的C模拟。
void *
具有以下属性:
void *
是需要处理任意数据的函数的选择类型,如calloc()
。
calloc
返回void*
因为:
如果您使用:
void* ptr = calloc(...);
它是有效的,但你不能使用*ptr
。 void*
不可解除引用指针必须转换为其他类型才能解除引用。 例如
char* cptr = ptr; *cptr = 'a';
以上就是c/c++开发分享为什么calloc指针类型是void *?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/519192.html