zoukankan      html  css  js  c++  java
  • char

          char是C/C++整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中是unsigned,编译器可以实现为带符号的,也可以实现为不带符号的,有些编译器如pSOS的编译器,还可以通过编译开关来指定它是有符号数还是无符号数。

          ANSI C 提供了3种字符类型,分别是char、signed char、unsigned char。char相当于signed char或者unsigned char,但是这取决于编译器!这三种字符类型都是按照1个字节存储的,可以保存256个不同的值。signed char取值范围是 -128 到 127,unsigned char 取值范围是 0 到 255。但是char究竟相当于signed char呢还是相当于unsigned char呢?这就是char和int的不同之处!int==signed int,但是char不能简单以为==signed char。要确定char究竟等同什么要基于不同的编译器做测试,大多数机器使用补码来存储整数,在这些机器中按照整数类型存储的-1的所有位均是1,就能据此判断char究竟是等于signed char还是unsigned char

          判断编译器的默认char符号

    #include <stdio.h>
    int main(void)
    {
        char c=-1;
        if(c<200)
        {
        printf("signed\n");
        }
        else
        {
        printf("unsigned\n");
        }
        return 0;
    }
  • 相关阅读:
    1043. 输出PATest(20)
    1042. 字符统计(20)
    1041. 考试座位号(15)
    1040. 有几个PAT(25)
    1035. 插入与归并(25)
    栈:火车进站
    ABC Fennec VS. Snuke
    费解的开关
    最短Hamilton路径
    built?
  • 原文地址:https://www.cnblogs.com/zzj2/p/3033128.html
Copyright © 2011-2022 走看看