下面这个c语言题为什么定义了一个int c 而不是char c

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:46:10
对以下程序,从第一列开始输入数据:2473,<CR>,程序的输出结果是()
a668977 b668966 c66778777 d6688766
#include "stdio.h"
main()
{int c;
clrscr();
while((c=getchar()!='\n'))
{switch(c-'2')
{case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}
}
printf("\n");
}
我想问为什么定义了一个int c 而不是char c
我想说这道题让我看不懂的是在while((c=getchar()!='\n'))中它怎么能把数字以字符的形式赋给整形变量C

char也是整型的,只是char只有1个字节长度,能表示的数的范围比int要小很多
在这里用int和c的都是一样的
但是在涉及位运算的时候不要这么用,因为char是8位,int是16位或者32位的

补充回答:
int和char之间的转换是自动进行的,因为它们都是整型的

字符都有对应的ASCII码,getch()赋给char c,则表示得到字符;赋给int c,表示得到ASCII码的数值。
这里可能作者为了强调说明进行加减运算操作,特意用int c。在C语言里int char都一样用 就看你printf中是%d还是%c,这个你应该知道的吧~~

int是整型,是0—65535的数,
char是字符型,是0—255的数,
2473>char内的数

char c 和int c 相差48,定义哪个一样