作者davidzxcv (GOGO)
看板C_and_CPP
標題[問題] 指標字串的問題
時間Tue Dec 26 01:16:43 2017
Visual studio 2015
問題(Question):
各位大大好
最近遇到指標字串的問題
Char *p=“hello”;
認知p是指向記憶體中’h’的位址
(也就是這個字串的起始位址)
但是當我cout<< p;時
卻是顯示hello 而不是0x....(位址)
還有一種是某某->p的時候也是輸出hello
不是位址
(程式有點多 如果妨礙回答可以忽略這個情況)
然後用printf(“%s”,p); 可顯示hello
應該是因為%s吧 若要得位址%p
想問為何(前二者)不是輸出位址
謝謝大大!
若有遺漏部分 敬請指教
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.169.123
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1514222205.A.C4C.html
推 LPH66: 就是因為字元指標常常是字串, 所以 cout 一個字元指標時 12/26 01:21
→ LPH66: 會把它當成字串來印 (技術上這是由 operator << 定義的) 12/26 01:22
→ LPH66: 如果想要 cout 一個字元指標的位址可以轉型成 (void*) 12/26 01:22
→ davidzxcv: 感謝大大 12/26 07:18
推 james732: 這算是一個cout給的方便吧? 12/26 18:32
推 s25g5d4: operator overloading 12/26 23:20
推 TitanEric: 喔喔 沒特別注意這點 筆記 12/27 22:40