作者CocoGrisp (快腿正姊抠抠李玟)
站内EE_DSnP
标题[问题] string pointer
时间Thu Apr 10 01:58:33 2008
今天老师上课说要印出 string pointer 的 address
要用 void pointer的方式
自己乱 try 一下
string C="how old are you?";
cout << C << endl;
cout << &C << endl; 这行可以印出 pointer 的 address
cout << &C[0] << endl; 这行印出的是一整个字串 (how old are you?)
为什麽两个印出来的
一个是 address
一个是 content
------------------------
感觉不怎麽重要
还是问一下 ^^|||
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.244.29
※ 编辑: CocoGrisp 来自: 140.112.244.29 (04/10 01:59)
1F:推 spock:我觉得第三个应该是看 string 怎麽定义 operator<< 的关系 04/10 08:42
2F:推 ric2k1:&C 就是取到 C 的 address, 但注意这个 addr 并不是 char* 04/10 13:59
3F:→ ric2k1:的 addr. 至於 C[0] 的到的是 char&, 取 &C[0] 之後会得到 04/10 14:05
4F:→ ric2k1:一个 char*, 所以就会印出字串而不是 address. 04/10 14:06
5F:推 kalawang:老师请问一下&C不是char*的addr这句话,我有点搞混了Orz 04/10 14:12
6F:→ kalawang:不然它应该是? 04/10 14:13
7F:推 kalawang:喔 是不是因为&C取到的是string C这个object的addr 04/10 14:40
8F:→ kalawang:然後&C[0]则是用string class里面所定义的operator[]去 04/10 14:41
9F:→ kalawang:取出class里面data member的char *所指的位址? 04/10 14:43
10F:推 ric2k1:Yes. 04/10 16:11