文章目录
- 首先,我们来放一张Ascall码的全部内容 那么Ascall码是什么呢?其实计算机在储存char的时候,在内存中保存的是ascall码的形式,char占有的是1个byte=8bit,所以是能够存下0-255的信息。(这里说的是unsigned char)这就是为什么习惯把char分入整形家族。 char //字符数据类型 占1个字节 short //短整型 占2个字节 int //整形 占4个字节 long //长整型 占4个字节 long long //更长的整形 占8个字节 float //单精度浮点数 占4个字节 double //双精度浮点数 占8个字节
-
- 对于char字符来说,使用scanf和printf函数来做输入输出的时候是%c的方式 char a; scanf("%c", &a); printf("%c", a);
- 那么如果我输入是%d模式呢?我们来看看%c与%d的转化 char a; scanf("%d", &a); printf("%c", a); 我们来看看输出结果 输入了F,在ascall码里面是70号,那么此时a的值是没有读进去的,这也侧面告诉我们形式与我们的输入的重要性,这里的bugs不易发现(你看看人家python) 我们理一遍计算机做了什么 计算机先在定义a的地方给a开好空间, scanf实际上是将读入的信息覆盖在原来开好的空间上, 然后输出的时候按照printf输出。
- char a; scanf("%c", &a); printf("%d", a); 如果输出的是%d格式,那么输出的是a的ascall码
- 1.char在电脑里储存里是以整形存储的,一一对应的关系是基于Ascall码。 2.在scanf里面当输入格式不对的时候是无法读入的。
首先,我们来放一张Ascall码的全部内容
那么Ascall码是什么呢?其实计算机在储存char的时候,在内存中保存的是ascall码的形式,char占有的是1个byte=8bit,所以是能够存下0-255的信息。(这里说的是unsigned char)这就是为什么习惯把char分入整形家族。
char //字符数据类型 占1个字节
short //短整型 占2个字节
int //整形 占4个字节
long //长整型 占4个字节
long long //更长的整形 占8个字节
float //单精度浮点数 占4个字节
double //双精度浮点数 占8个字节
对于char字符来说,使用scanf和printf函数来做输入输出的时候是%c的方式
char a;
scanf("%c", &a);
printf("%c", a);
那么如果我输入是%d模式呢?我们来看看%c与%d的转化
char a;
scanf("%d", &a);
printf("%c", a);
我们来看看输出结果
输入了F,在ascall码里面是70号,那么此时a的值是没有读进去的,这也侧面告诉我们形式与我们的输入的重要性,这里的bugs不易发现(你看看人家python)
我们理一遍计算机做了什么
计算机先在定义a的地方给a开好空间,
scanf实际上是将读入的信息覆盖在原来开好的空间上,
然后输出的时候按照printf输出。
char a;
scanf("%c", &a);
printf("%d", a);
char a;
scanf("%c", &a);
printf("%d", a);
如果输出的是%d格式,那么输出的是a的ascall码
1.char在电脑里储存里是以整形存储的,一一对应的关系是基于Ascall码。
2.在scanf里面当输入格式不对的时候是无法读入的。



发表回复