打印

关于char和int的关系

[复制链接]
1408|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2012-9-19 18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求输出ASCII码为32~127的对应字符。
[code=C/C++][/code]
void main()
{
int c; //声明为int型

for (c=32; c<128; c++)
{ cout << (char)c; } //强制转换为char型
cout << endl;
}

[code=C/C++][/code]
void main()
{
char c; //声明为char型

for (c=32; c<128; c++)
{ cout << c; } //本身已是char型
cout << endl;
}
上面的可以两个方法,只有第一种是有正常输出的。我不理解char和int的关系,最好具体针对这里的程序解释解释。

相关帖子

沙发
无冕之王| | 2012-9-19 18:22 | 只看该作者
char 的范围是-128 ~ 127, 所以 c < 128永真。

使用特权

评论回复
板凳
xsgy123| | 2012-9-19 18:30 | 只看该作者
128的时候就成负数-128了.
然后又-127,-126,永远都小于128了

使用特权

评论回复
地板
baidudz| | 2012-9-19 18:39 | 只看该作者
32位 int类型,4个字节;char 占8个字节,当char的值到了128时,8位已经不够存了,就截断了,所以它的值永远小于128.

使用特权

评论回复
5
shenmulzb1985| | 2012-9-21 09:30 | 只看该作者
根本楼上的各位学习了啊,关于int 跟char 的区别的,在实际的调试中可很明显体现的

使用特权

评论回复
6
hawksabre| | 2012-9-22 18:43 | 只看该作者
int 的长度 与 机器字长相同, 16位的编译器上int长16位,32位的编译器上int长32位;

char 的长度应当可以包容得下一个字符,大部分系统中就是一个字节,而有的系统中可能是4个字节,因为这些系统中一个字符需要四个字节来描述;

char 的正负取决于编译器,而编译器的决定取决于操作系统,在不同的编译器中char可能等同于signed char,也可能等同于unsigned char;

使用特权

评论回复
7
hawksabre| | 2012-9-22 18:43 | 只看该作者
希望我的回答对你有帮助    谢谢   呵呵

使用特权

评论回复
8
wulala| | 2012-9-23 15:32 | 只看该作者
其实就是范围不一样的,有时候是可以通用的,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝