当前位置

网站首页> 程序设计 > 开源项目 > 程序开发 > 浏览文章

C语言变量类型定义之getchar() - EastingCW

作者:小梦 来源: 网络 时间: 2024-04-16 阅读:

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. 程序1:[0,255]

  2. 程序2:

    • char是signed的系统中:[-127,127]

    • char是unsigned的系统中:[0,127]

我们可以发现,int型的范围和signed范围是等价的,而unsigned范围不能判断负数(或者是大于127的字符)。
所以综合考虑,建议使用int型,保证程序兼容性。

热点阅读

网友最爱