打印

指针问题

[复制链接]
746|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
txcy|  楼主 | 2013-6-27 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "iostream"
#include <string>
  
using namespace  std;
  
int main(){
      
    string   s1="andy test.";
    char  *p1;
    p1=&s1[4];
      
    cout<<"p1="<<p1<<endl;
    cout<<"&s1[4]="<<&s1[4]<<endl;
    cout<<"*p1="<<*p1<<endl;
  
return 0;
}
p1我定义的是一个指针,取的是&s1[4]的地址,但为何p1输出的值是一个字符串“ test”,而不是一个地址值呢?

相关帖子

沙发
火箭球迷| | 2013-6-27 18:40 | 只看该作者
因为p1 是char类型。要输出字符地址,用 &p1

使用特权

评论回复
板凳
baidudz| | 2013-6-27 19:23 | 只看该作者
这是<<操作符重载的结果  你强制转换下类型应该就可以了

使用特权

评论回复
地板
pkat| | 2013-6-27 19:27 | 只看该作者
因为 cout 必须支持输出C字符串,所以一切字符类型的指针,都会按照字符串输出,其他的指针才是输出地址。
要保证输出地址,强转为 void* 指针

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝