整型数据数值超过255结果是怎样的?

我用vc6.0输入以下程序
#include<stdio.h>
void main()
{int c1,c2;
c1=300;
c2=400;
printf("%c%c\n",c1,c2);
printf("%d%d\n",c1,c2);
}得到的结果是
,?
300400
请问“,?”是如何得出的?
那问号呢?逗号的那个还不是很清楚,0000012C和2C010000是怎么得出来的?具体说一下可以吗?

第1个回答  2009-09-26
首先我说一下,,书上说的整形数据是过去的,8位数,有符号数表示的范围是-128~127.无符号数表示的是0~255,而我们现在用的机子是32位的,也就是说你定义的int型是32位,它远大于256,当你定义a=300时.他的16进制应该是0000012C,而在内存中它是以2C010000(小尾存数),所以你在用printf("%c",c1的时候),它是你定义的c1的地址(即2C的地址)来读取一个字节,即2CH,在ASCII表中对应44,也就是逗号..
第2个回答  2009-09-26
%c是char 类型。也就是字符型。而你输入数字转成字符类型输出。他就会输出对应的ASCII码所标记的字符。

超出范围的会输出莫名其妙的东西。你可以接收键盘的东西然后输出。来测试键盘摁键的ASCII值
第3个回答  2009-09-26
int型是两个字节
%c只取一个字节,C1=300=256+44,它只取了44,而","的ASCII码为44
相似回答