int类型

  • 有符号、ISO/ANSI C要求最少使用十六位存储,本机测试为4字节(32位)
  • C默认把大多数整数常量认为是int类型
  • %d是用来打印整数。
  • 十六进制数每一位恰好可以用4位二进制数表示使用前缀0X或0x,八进制数每一位对应3位二进制数使用前缀0
  • 显示十六进制数使用%x,显示八进制数使用%o,如果想显示前缀,请使用%#x、%#X、%#o来添加前缀0x 0X 0
  1. #include<stdio.h> 
  2.  
  3. int main(void){ 
  4.     int x = 100; 
  5.     printf("dec = %d;octal = %o;hex = %x",x,x,x); 
  6.     printf("dec = %d;octal = %#o;hex = %#x",x,x,x); 
  7.      
  8.     getchar(); 
  9.     return 0; 
  10. }

 short、long、longlong、unsigned等其他整数类型

  • 在代码中使用7这样的数字,它以int进行存储,使用10000000这样的大数字编译器会将它视为long int类型
  • 如果希望将较小的数存入long类型中,可以使用l或L后缀(不是强制,也可以不用,系统将自动转换,小类型转换为大类型是可以由系统自动完成的)。同理,可以使用ll或者LL后缀标识一个longlong类型

打印short、long、longlong和unsigned类型数字

  • 打印unsigned使用%u,打印long使用l前缀,打印longlong使用ll前缀,打印short使用h前缀。
    1. #include<stdio.h> 
    2.  
    3. int main(void){ 
    4.     unsigned int un = 3000000000; 
    5.     short end = 200; 
    6.     long big = 65537;//此处没有使用65537L,因为由小到大类型的转换是自动完成的  
    7.     long long verybig = 12345678908642; 
    8.     printf("un = %u and not %d\n",un,un);//对无符号变量使用%d可能会导致负值, 
    9.                                          //当数值大于有符号数的最大值时会出现不一致 
    10.                                          //而当小于或等于有符号数的最大值时是一致的                                                                                                                                        
    11.     printf("end = %hd and %d\n",end,end);//传递参数时,C自动将short类型转换为int类型 
    12.                                          //后缀h存在的意义是可以将一个长整数截为short类型时的样子 
    13.     printf("big = %ld and not %hd\n",big,big); //加前缀h,则只截取后16位 
    14.     printf("verybig = %lld and not %ld\n",verybig,verybig);//首先显示完整值,再显示只截取32位时的值  
    15.     printf()  
    16.     getchar(); 
    17.     return 0; 

char类型

  • 整数类型,使用ACSII码,通常定义为8位存储单元。
  • %c格式用来打印一个字符
    1. #include<stdio.h> 
    2.  
    3. int main(void){ 
    4.    char c1 = 'A';//单引号字符常量赋值  
    5.    char c2 = 65;//数值编码赋值  
    6.    printf("%c\n%c\n",c1,c2);//可以的当做字符来输出  
    7.     
    8.    printf("%d\n%d\n",c1,c2);//可以当做整数来输出  
    9.     
    10.    getchar(); 
    11.    return 0; 

_Bool类型

  • 整数类型,只有一位