C语言请教,高手请进

来源:百度知道 编辑:UC知道 时间:2024/06/20 16:49:43
void main()
{
int a,b=322;
float x,y=8.88;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d %f %d %c",a,x,a,c2);
getch();
}
关于这个程序,c2=b=322,为什么我得到了B?ASCII码有322那么多的吗?

如果你给的整数大于了256 它会自动-256 或者他的倍数 然后在输出的

B是66 你给的322 322-256=66 呵呵 明白了吗

前三个就不说了......ASCII码当然没有322个那么多,ASCII码从0--255,那是因为出现了回绕!回绕后是66,所以出现了“B”。

c2的范围最大256,你赋给它322,那么它的真实值为322-256=66,66即为B的ASCII码