作者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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1514222205.A.C4C.html
1F:推 LPH66: 就是因为字元指标常常是字串, 所以 cout 一个字元指标时 12/26 01:21
2F:→ LPH66: 会把它当成字串来印 (技术上这是由 operator << 定义的) 12/26 01:22
3F:→ LPH66: 如果想要 cout 一个字元指标的位址可以转型成 (void*) 12/26 01:22
4F:→ davidzxcv: 感谢大大 12/26 07:18
5F:推 james732: 这算是一个cout给的方便吧? 12/26 18:32
6F:推 s25g5d4: operator overloading 12/26 23:20
7F:推 TitanEric: 喔喔 没特别注意这点 笔记 12/27 22:40