新微赢技术网

标题: [求助]一个字符到底多长 [打印本页]

作者: 半个灵魂    时间: 2009-11-4 01:23
标题: [求助]一个字符到底多长
一个字节或者一个字符到底多长?我的计算机算不出来了哈
请看我的程序:

#include<iostream>
using namespace std;
int main()
{
char i='a';
char *p;
p=&i;
cout<<p<<endl;
p=p+1;
cout<<p<<endl;
return 0;
}
显示如下:


附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
作者: 独臂神军    时间: 2009-11-4 01:23
标准库提供的cout<<,当输出char *类型时并不是输出p指向的字符,他默认p指向的是一个字符串.
都知道字符串是以'\0'结尾的,而在你的程序里p指向一个单个的字符.输出时,会不断输出p指向的字符之后的字符,直到遇到'\0',这其中如果有不能读的内存区域,你的程序就会崩溃.

如果你仅想知道char的大小,用sizeof(char)就行了
作者: 爱虎老油♂    时间: 2009-11-4 01:23
说的 很好。
作者: 顺其自然    时间: 2009-11-4 01:23
#include<iostream>
using namespace std;
int main()
{
char i='a';
char *p;
p=&i;
cout<<p<<endl;
p=p+1;
cout<<p<<endl;
return 0;
}
没有\0结束啊
cout<<对字符串只认这个
作者: 泡个帅滴上床    时间: 2009-11-4 01:23
#include<iostream>

using namespace std;

int main()
{
char i='a';
char *p;
p=&i;
for(char *tmp=p;*tmp!='\0';++tmp)
cout<<*tmp;
cout<<endl;
cout<<p<<endl;

return 0;
}

这是我改的程序,for循环从p指向的字符开始输出直到'\0'。
你会发现for循环的输出和cout一样




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2