返回信息流char a[]="abcdef";
char* p=a;
cout<<&p<<endl; //这个应该是得到的p指针的地址吧?我想要a数组的首地址如何得到呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #13938同步于 2008/10/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于获得字符串数组首地址的问题
FLYMAN
2008/10/12镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 luotuo 的大作中提到: 】
: 直接cout<<&a;应该就可以了吧……
那如果这样定义呢?
char* p=abcdef";
cout<<&p<<endl; //如何得到第一个字符的地址?
【 在 FLYMAN 的大作中提到: 】
: 那如果这样定义呢?
: char* p=abcdef";
: cout<<&p<<endl; //如何得到第一个字符的地址?
p不就是么
p当然不是啦,cout是会根据输出内容自动变换输出格式的。
由于P是char *,所以cout << p会直接打印出abcde。
要想知道p的地址,需要进行类型的强制转化。
cout << (unsigned int *)p << endl;
牛人啊
【 在 ericyosho 的大作中提到: 】
: p当然不是啦,cout是会根据输出内容自动变换输出格式的。
: 由于P是char *,所以cout << p会直接打印出abcde。
: 要想知道p的地址,需要进行类型的强制转化。
: ...................
补充“烦”的另外两种方法:
1、重载你的cout<<(ms在这儿没多大必要~);
2、printf("%d\n", p)-----------输出的是十进制的地址
也可以用printf("%0x\n", p)输出十六进制的地址
两个都是存在静态存储区的地址。