【C/C++】C/C++基本数据类型

标准C基本数据类型:int char long short float double void以及它们与signed、unsigned的组合。标准C++增加了bool型和wchar_t型,在32位操作系统上,它们的长度如下表:

类型标识符 类型说明 长度(字节) 范围 备注
char 字符型 1 -128 ~ 127 -27 ~ (27 -1)
unsigned char 无符字符型 1 0 ~ 255 0 ~ (28 -1)
short int 短整型 2 -32768 ~ 32767 2-15 ~ (215 - 1)
unsigned short int 无符短整型 2 0 ~ 65535 0 ~ (216 - 1)
long int 长整型 4 -2147483648 ~ 2147483646 -231 ~ (231 - 0)
int 整型 4 -2147483648 ~ 2147483647 -231 ~ (231 - 1)
unsigned int 无符整型 4 0 ~ 4294967295 0 ~ (232-1)
float 实型(单精度) 4 1.18*10-38 ~ 3.40*1038 7位有效位
double 实型(双精度) 8 2.23*10-308 ~ 1.79*10308 15位有效位
long double 实型(长双精度) 10 3.37*10-4932 ~ 1.18*104932 19位有效位

在不同的平台下,字长不同,具体可以通过以下代码查看:
  1. #include<stdio.h>  
  2.   
  3. void main()  
  4. {  
  5.     //字符型 有符号和无符号的字节数一样 只是范围不同  
  6.     printf("char is %d\n",sizeof(char));  
  7.     printf("unsigned char is %d\n",sizeof(unsigned char));  
  8.   
  9.     //整数型  
  10.     printf("short int is %d\n",sizeof(short int));  
  11.     printf("unsigned short int is %d\n",sizeof(unsigned short int));  
  12.     printf("long int is %d\n",sizeof(long int));  
  13.     printf("int is %d\n",sizeof(int));  
  14.     printf("unsigned int is %d\n",sizeof(unsigned int));  
  15.       
  16.     //浮点型  
  17.     printf("float is %d\n",sizeof(float));  
  18.     printf("double is %d\n",sizeof(double));  
  19.     printf("long double is %d\n",sizeof(long double));  
  20.       
  21. }  

在头文件climits.h中,定义了符号常量来表示类型的限制。其列表如下:

name expresses value*
CHAR_BIT Number of bits in a char object (byte) 8 or greater
SCHAR_MIN Minimum value for an object of type signed char -127 (-27+1) or less
SCHAR_MAX Maximum value for an object of type signed char 127 (27-1) or greater
UCHAR_MAX Maximum value for an object of type unsigned char 255 (28-1) or greater
CHAR_MIN Minimum value for an object of type char either SCHAR_MIN or 0
CHAR_MAX Maximum value for an object of type char either SCHAR_MAX or UCHAR_MAX
MB_LEN_MAX Maximum number of bytes in a multibyte character, for any locale 1 or greater
SHRT_MIN Minimum value for an object of type short int -32767 (-215+1) or less
SHRT_MAX Maximum value for an object of type short int 32767 (215-1) or greater
USHRT_MAX Maximum value for an object of type unsigned short int 65535 (216-1) or greater
INT_MIN Minimum value for an object of type int -32767 (-215+1) or less
INT_MAX Maximum value for an object of type int 32767 (215-1) or greater
UINT_MAX Maximum value for an object of type unsigned int 65535 (216-1) or greater
LONG_MIN Minimum value for an object of type long int -2147483647 (-231+1) or less
LONG_MAX Maximum value for an object of type long int 2147483647 (231-1) or greater
ULONG_MAX Maximum value for an object of type unsigned long int 4294967295 (232-1) or greater
LLONG_MIN Minimum value for an object of type long long int -9223372036854775807 (-263+1) or less
LLONG_MAX Maximum value for an object of type long long int 9223372036854775807 (263-1) or greater
ULLONG_MAX Maximum value for an object of type unsigned long long int 18446744073709551615 (264-1) or greater

* 其精确值依赖于你的系统和库的实现
上一篇:如何在一台设备上安装不同版本的安卓应用


下一篇:2020阿里巴巴大数据技术公开课第五季 — SaaS模式云数据仓库MaxCompute开发实战与常见问题