C++输出字符型指针指向内存空间的地址

看到标题你可能笑了,这不是小case吗?

char *p = "This is a string!";
cout<<p<<endl;//搞定了?其实没有,这个输出结果就是字符串。至于为什么没搞定,这关系到cout的内部实现,由于鄙人才疏学浅,实在是没法展开讨论。

啊,这样不对?那加个(取地址符)&不就OK了!

cout<<&p<<endl;//这样输出的确实是个地址,但是是p的地址而不是p指向的地址,还不行!

心里郁闷了,这个小问题自己以前怎么没想到呢,现在还真解决不了。

仔细想一下,地址其实不就是数字吗,那我把它强转成long型的不就可以了吗!

cout<<(long)p<<endl;//这下总算是搞定了,先高兴一下

高兴得有点早了,这强转明显就是C语言的那一套。怎么办呢,其实C++里页提供了类型转化的关键字static_cast、const_cast、reinterpret_cast、dynamic_cast,具体请自己查阅资料。

cout<<reinterpret_cast<long>(p)<<endl;//这样是不是高大上一点呢?嘿嘿



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值