C 的赋值问题!很简单~

来源:百度知道 编辑:UC知道 时间:2024/06/09 07:54:17
#include<stdio.h>
void main()
{ int i;
char ch;
scanf("%d",&i);
ch=i;
printf("%d\n",ch);
}

结果:
45
45
Press any key to continue

ch=i;把一个整型赋值给字符型 这也行?
为什么会这样?

可以,字符型变量如果以整型输出的话,输出的就是这个字符的ASCII码

同样,如果你把一个整型给了字符型,也就是把这个整型数ASCII码对应的字符给了这个变量

因为char跟int都是以整数形色存储,不过char的容量比较小就0到255,int就的容量就大一倍(16位机,32/64到更大).

把一个整型赋值给一个字符型或许会造成溢出,反之不成立.
也就如hxxirqwy所说:通常int为两个字节,char为一个字节.(或许有些机器不这样)