作者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