[問題] 指標字串的問題

作者: davidzxcv (GOGO)   2017-12-26 01:16:43
Visual studio 2015
問題(Question):
各位大大好
最近遇到指標字串的問題
Char *p=“hello”;
認知p是指向記憶體中’h’的位址
(也就是這個字串的起始位址)
但是當我cout<< p;時
卻是顯示hello 而不是0x....(位址)
還有一種是某某->p的時候也是輸出hello
不是位址
(程式有點多 如果妨礙回答可以忽略這個情況)
然後用printf(“%s”,p); 可顯示hello
應該是因為%s吧 若要得位址%p
想問為何(前二者)不是輸出位址
謝謝大大!
若有遺漏部分 敬請指教
作者: LPH66 (-6.2598534e+18f)   2017-12-26 01:21:00
就是因為字元指標常常是字串, 所以 cout 一個字元指標時會把它當成字串來印 (技術上這是由 operator << 定義的)如果想要 cout 一個字元指標的位址可以轉型成 (void*)
作者: davidzxcv (GOGO)   2017-12-26 07:18:00
感謝大大
作者: james732 (好人超)   2017-12-26 18:32:00
這算是一個cout給的方便吧?
作者: s25g5d4 (function(){})()   2017-12-26 23:20:00
operator overloading
作者: TitanEric (泰坦)   2017-12-27 22:40:00
喔喔 沒特別注意這點 筆記

Links booklink

Contact Us: admin [ a t ] ucptt.com