[问题] 指标字串的问题

楼主: 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