getchar() : 在32位操作系统下,读取一个字节
[程序1]
#include<stdio.h>
main()
{
int c; //定义为int类型
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
return 0;
}
[程序2]
#include<stdio.h>
main()
{
char c; //定义为char类型
c=getchar();
while(c!=EOF)
{
putchar(c);
c=getchar();
}
return 0;
}
对比以上两个程序可以发现,定义变量c的地方不同,其余都一样。
char : c/c++整型数据中比较古怪的一个,在标准中是unsigned。编辑器可实现为带符号的,也可实现为不带符号的。
采用中断调试可以发现,每个字节的范围:
程序1:[0,255]
-
程序2:
char是signed的系统中:[-127,127]
char是unsigned的系统中:[0,127]
我们可以发现,int型的范围和signed范围是等价的,而unsigned范围不能判断负数(或者是大于127的字符)。
所以综合考虑,建议使用int型,保证程序兼容性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。