社区
C++ 语言
帖子详情
char a = '2'; cout << &a << endl; 为什么输出的地址是个乱码呢?
flamingheart
2006-05-03 09:57:51
谁能解释一下?
...全文
401
5
打赏
收藏
char a = '2'; cout << &a << endl; 为什么输出的地址是个乱码呢?
谁能解释一下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qhgary
2006-05-03
打赏
举报
回复
默认cout <<重载了char*的操作,cout << (char*)会输出这个字符串的内容。
如果
char* pStr = "abcd";
cout << pStr << endl;
那么abcd会输出,cout会从pStr所指的地方开始输出起,一直到\0结束。
所以如果你要输出某个字符的地址。
比如char ch = 'c';
不能cout << &ch << endl;
而是cout << (void*)&ch << endl;
void*将表示输出地址。
同样如果是个字符串,你想输出的是地址而不是内容,也可以用类似的方法。
ChrisAK
2006-05-03
打赏
举报
回复
c字符串是以\0为标志的.
==================
晕.
c字符串是以\0为结束标志的.
ChrisAK
2006-05-03
打赏
举报
回复
你不能保证&a这个地址之后的那个地址所保存的内容是\0
c字符串是以\0为标志的.
所以输出的是乱码
braveconf
2006-05-03
打赏
举报
回复
char*当字符串输出
sankt
2006-05-03
打赏
举报
回复
需要做一下转换:
char c='2';
cout<<static_cast<void *>(&c)<<endl;
为什么“
cout
<< &c <<
endl
;”这个语句有问题?
先看程序: #include using namespace std; int main() {
char
c = 'A';
cout
<< &c <<
endl
; return 0; } 结果为
乱码
,为什么呢? 因为
cout
将&c当成了
char
*形式了,进而认为
输出
一个字符串,验证如下: int main() {
char
c = 'A';
cout
<< &c <<
c++
输出
char
类型变量的
地址
乱码
的解决方案
今天vs2013上发现以下代码:
char
a = 'c';
cout
<< &a <<
endl
; 的
输出
竟然不是
地址
,而是一串
乱码
:”烫…“ 可以修改为:
cout
<< (void *)&a <<
endl
; 进行强制转换,就可以正常
输出
了。 原因是:
cout
重载了很多类型,对于
char
*,它会当作以’\0’结尾的字符串来处理。 ...
cout
和动态内存
cout
尽量避免出现这样的代码:
char
b[3]={'c','+','+'};
cout
<<b<<
endl
;
cout
输出
字符串是根据'\0'判断结束
输出
的,所以可能
输出
乱码
cout
输出
顺序从左到右,计算顺序从右到左,如: int a = 4;
cout
<<a<<a++<<
endl
;//
输出
54 动态内存 c++关于动态内存有...
char
类型
输出
地址
问题描述: 当
输出
char
的
地址
时,发现
输出
的是一个字符:
char
ch = 'a';
cout
<<&ch<<
endl
;//a @ 因为
cout
得到一个
char
类型的
地址
,默认当做字符串来
输出
的,所以会导致
输出
乱码
. 使用
char
*类型指向ch,然后
输出
同样也会
输出
乱码
. 解决办法: 将其转成void*(空指针)类型...
C++指针理解
一:指针是什么 指针是一种变量,和int、
char
、float等一样,需要占用一定的内存; 例如: int变量:在32位机器上占用 4 个字节; 在64位上也是 4 个字节,存储的是整型数字 int*指针变量:在32位机器上占用 4 个字节; 在64位上也是 8个字节,存储的是int变量的
地址
; 所以,说到底,指针也是一种变量,只不过是存储
地址
的变量;二:指针类型的含...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章