4条回答 默认 最新
- 战在春秋 2017-11-12 06:32关注
c/c++语言中,void意思是 无类型,所以不能声明类型为void的变量,但可以声明指向void类型的指针。
void *foo ; ///Works fine void foo ; ///Error
可以给void指针赋任意类型的地址值,但不能通过void指针访问这些地址指向的变量
int i=90 ; void *ip ; ip=&i ; ///Works fine cout<< *ip ; /* error:cannot access the value of i */
如果想要访问void指针指向的变量,需要先将其转换为具体类型的指针,如下:
int i=90 ; void *ip=&i ; int *iv=static_cast<int *>(ip) ; ///Casting ip to int type cout<< *iv ; //Works fine 注意需要转换为正确的类型,否则会引入bug,如下: string st=*static_cast<string *>(ip) ;// casting to string type cout<< st ; //undefined
如果对您有帮助,请采纳答案好吗(鼠标在我的答案区域停留片刻即可看到采纳按钮),谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 6无用
悬赏问题
- ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
- ¥15 求daily translation(DT)偏差订正方法的代码
- ¥15 js调用html页面需要隐藏某个按钮
- ¥15 ads仿真结果在圆图上是怎么读数的
- ¥20 Cotex M3的调试和程序执行方式是什么样的?
- ¥20 java项目连接sqlserver时报ssl相关错误
- ¥15 一道python难题3
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler