欢迎光临
我们一直在努力

C++ 数据类型46777

C++ 数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。

您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。

基本的内置类型

C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型。下表列出了七种基本的 C++ 数据类型:

类型关键字
布尔型 bool
字符型 char
整型 int
浮点型 float
双浮点型 double
无类型 void
宽字符型

wchar_t

其实 wchar_t 是这样来的:

typedef short int wchar_t;

所以 wchar_t 实际上的空间是和 short int 一样。

一些基本类型可以使用一个或多个类型修饰符进行修饰:

修饰符描述示例
signed 表示有符号类型(默认) signed int x = -10;
unsigned 表示无符号类型 unsigned int y = 10;
short 表示短整型 short int z = 100;
long 表示长整型 long int a = 100000;
const 表示常量,值不可修改 const int b = 5;
volatile 表示变量可能被意外修改,禁止编译器优化 volatile int c = 10;
mutable 表示类成员可以在 const 对象中修改 mutable int counter;

下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。

注意:不同系统会有所差异,一字节为 8 位。

https://avg.163.com/topic/detail/10165873 https://avg.163.com/topic/detail/10167024 https://avg.163.com/topic/detail/10167022 https://avg.163.com/topic/detail/10167012 https://avg.163.com/topic/detail/10167013 https://avg.163.com/topic/detail/10165581 https://avg.163.com/topic/detail/10166964 https://avg.163.com/topic/detail/10166959 https://avg.163.com/topic/detail/10165889 https://avg.163.com/topic/detail/10166944 https://avg.163.com/topic/detail/10166943 https://avg.163.com/topic/detail/10166942 https://avg.163.com/topic/detail/10166932 https://avg.163.com/topic/detail/10166925 https://avg.163.com/topic/detail/10166918 https://avg.163.com/topic/detail/10166896 https://avg.163.com/topic/detail/10166906 https://avg.163.com/topic/detail/10165977 https://avg.163.com/topic/detail/10166856 https://avg.163.com/topic/detail/10166855 https://avg.163.com/topic/detail/10166854 https://avg.163.com/topic/detail/10166853 https://avg.163.com/topic/detail/10166845 https://avg.163.com/topic/detail/10166680 https://avg.163.com/topic/detail/10166831 https://avg.163.com/topic/detail/10166810 https://avg.163.com/topic/detail/10165488 https://avg.163.com/topic/detail/10166769 https://avg.163.com/topic/detail/10166768 https://avg.163.com/topic/detail/10166767 https://avg.163.com/topic/detail/10166765 https://avg.163.com/topic/detail/10166764 https://avg.163.com/topic/detail/10166752 https://avg.163.com/topic/detail/10166748 https://avg.163.com/topic/detail/10166746 https://avg.163.com/topic/detail/10166731 https://avg.163.com/topic/detail/10166729 https://avg.163.com/topic/detail/10166712 https://avg.163.com/topic/detail/10165498 https://avg.163.com/topic/detail/10166693 https://avg.163.com/topic/detail/10166679 https://avg.163.com/topic/detail/10166678 https://avg.163.com/topic/detail/10166671 https://avg.163.com/topic/detail/10166669 https://avg.163.com/topic/detail/10166231 https://avg.163.com/topic/detail/10166652 https://avg.163.com/topic/detail/10166039 https://avg.163.com/topic/detail/10166604 https://avg.163.com/topic/detail/10165808 https://avg.163.com/topic/detail/10166594 https://avg.163.com/topic/detail/10166593 https://avg.163.com/topic/detail/10166591 https://avg.163.com/topic/detail/10166581 https://avg.163.com/topic/detail/10166577 https://avg.163.com/topic/detail/10166569 https://avg.163.com/topic/detail/10166525 https://avg.163.com/topic/detail/10166555 https://avg.163.com/topic/detail/10166558 https://avg.163.com/topic/detail/10166553 https://avg.163.com/topic/detail/10166532 https://avg.163.com/topic/detail/10166511 https://avg.163.com/topic/detail/10165696 https://avg.163.com/topic/detail/10166489 https://avg.163.com/topic/detail/10166497 https://avg.163.com/topic/detail/10166480 https://avg.163.com/topic/detail/10166462 https://avg.163.com/topic/detail/10165885 https://avg.163.com/topic/detail/10166413 https://avg.163.com/topic/detail/10166418 https://avg.163.com/topic/detail/10166415 https://avg.163.com/topic/detail/10166404 https://avg.163.com/topic/detail/10166383 https://avg.163.com/topic/detail/10166368 https://avg.163.com/topic/detail/10166373 https://avg.163.com/topic/detail/10166330 https://avg.163.com/topic/detail/10166332 https://avg.163.com/topic/detail/10166321 https://avg.163.com/topic/detail/10166314 https://avg.163.com/topic/detail/10166299 https://avg.163.com/topic/detail/10166290 https://avg.163.com/topic/detail/10166291 https://avg.163.com/topic/detail/10165838 https://avg.163.com/topic/detail/10164149 https://avg.163.com/topic/detail/10166259 https://avg.163.com/topic/detail/10165485 https://avg.163.com/topic/detail/10166240 https://avg.163.com/topic/detail/10166233 https://avg.163.com/topic/detail/10166241 https://avg.163.com/topic/detail/10166234 https://avg.163.com/topic/detail/10166231 https://avg.163.com/topic/detail/10166204 https://avg.163.com/topic/detail/10165092 https://avg.163.com/topic/detail/10166203 https://avg.163.com/topic/detail/10166189 https://avg.163.com/topic/detail/10166170 https://avg.163.com/topic/detail/10164493 https://avg.163.com/topic/detail/10166149 https://avg.163.com/topic/detail/10166147 https://avg.163.com/topic/detail/10166144 https://avg.163.com/topic/detail/10164670 https://avg.163.com/topic/detail/10166126 https://avg.163.com/topic/detail/10166112 https://avg.163.com/topic/detail/10166118 https://avg.163.com/topic/detail/10166107 https://avg.163.com/topic/detail/10166087 https://avg.163.com/topic/detail/10166056 https://avg.163.com/topic/detail/10163939 https://avg.163.com/topic/detail/10166044 https://avg.163.com/topic/detail/10166042 https://avg.163.com/topic/detail/10166041 https://avg.163.com/topic/detail/10166040 https://avg.163.com/topic/detail/10166039 https://avg.163.com/topic/detail/10164795 https://avg.163.com/topic/detail/10166017 https://avg.163.com/topic/detail/10166021 https://avg.163.com/topic/detail/10166000 https://avg.163.com/topic/detail/10165987 https://avg.163.com/topic/detail/10165977 https://avg.163.com/topic/detail/10165979 https://avg.163.com/topic/detail/10165978 https://avg.163.com/topic/detail/10165967 https://avg.163.com/topic/detail/10165955 https://avg.163.com/topic/detail/10165946 https://avg.163.com/topic/detail/10165940 https://avg.163.com/topic/detail/10165939 https://avg.163.com/topic/detail/10165936 https://avg.163.com/topic/detail/10164059 https://avg.163.com/topic/detail/10163964 https://avg.163.com/topic/detail/10165889 https://avg.163.com/topic/detail/10164149 https://avg.163.com/topic/detail/10165876 https://avg.163.com/topic/detail/10165885 https://avg.163.com/topic/detail/10165881 https://avg.163.com/topic/detail/10165877 https://avg.163.com/topic/detail/10165875 https://avg.163.com/topic/detail/10165873 https://avg.163.com/topic/detail/10165838 https://avg.163.com/topic/detail/10165808 https://avg.163.com/topic/detail/10165817 https://avg.163.com/topic/detail/10165799 https://avg.163.com/topic/detail/10165800 https://avg.163.com/topic/detail/10165795 https://avg.163.com/topic/detail/10165793 https://avg.163.com/topic/detail/10165772 https://avg.163.com/topic/detail/10165768 https://avg.163.com/topic/detail/10165758 https://avg.163.com/topic/detail/10165744 https://avg.163.com/topic/detail/10165736 https://avg.163.com/topic/detail/10165728 https://avg.163.com/topic/detail/10164035 https://avg.163.com/topic/detail/10165712 https://avg.163.com/topic/detail/10165696 https://avg.163.com/topic/detail/10165691 https://avg.163.com/topic/detail/10163989 https://avg.163.com/topic/detail/10165670 https://avg.163.com/topic/detail/10165672 https://avg.163.com/topic/detail/10165674 https://avg.163.com/topic/detail/10165665 https://avg.163.com/topic/detail/10165630 https://avg.163.com/topic/detail/10165629 https://avg.163.com/topic/detail/10165610 https://avg.163.com/topic/detail/10165616 https://avg.163.com/topic/detail/10165581 https://avg.163.com/topic/detail/10165578 https://avg.163.com/topic/detail/10164295 https://avg.163.com/topic/detail/10164003 https://avg.163.com/topic/detail/10165558 https://avg.163.com/topic/detail/10165560 https://avg.163.com/topic/detail/10165534 https://avg.163.com/topic/detail/10165509 https://avg.163.com/topic/detail/10165498 https://avg.163.com/topic/detail/10165499 https://avg.163.com/topic/detail/10165488 https://avg.163.com/topic/detail/10165485 https://avg.163.com/topic/detail/10165461 https://avg.163.com/topic/detail/10165457 https://avg.163.com/topic/detail/10165456 https://avg.163.com/topic/detail/10165408 https://avg.163.com/topic/detail/10165448 https://avg.163.com/topic/detail/10165446 https://avg.163.com/topic/detail/10165400 https://avg.163.com/topic/detail/10165384 https://avg.163.com/topic/detail/10164007 https://avg.163.com/topic/detail/10165351 https://avg.163.com/topic/detail/10165342 https://avg.163.com/topic/detail/10165318 https://avg.163.com/topic/detail/10165297 https://avg.163.com/topic/detail/10165290 https://avg.163.com/topic/detail/10165258 https://avg.163.com/topic/detail/10165250 https://avg.163.com/topic/detail/10165240 https://avg.163.com/topic/detail/10165227 https://avg.163.com/topic/detail/10165219 https://avg.163.com/topic/detail/10164049 https://avg.163.com/topic/detail/10165211 https://avg.163.com/topic/detail/10165208 https://avg.163.com/topic/detail/10165207 https://avg.163.com/topic/detail/10165172 https://avg.163.com/topic/detail/10165166 https://avg.163.com/topic/detail/10165150 https://avg.163.com/topic/detail/10164054 https://avg.163.com/topic/detail/10165128 https://avg.163.com/topic/detail/10163949 https://avg.163.com/topic/detail/10165088 https://avg.163.com/topic/detail/10165092 https://avg.163.com/topic/detail/10165074 https://avg.163.com/topic/detail/10164010 https://avg.163.com/topic/detail/10164052 https://avg.163.com/topic/detail/10165043 https://avg.163.com/topic/detail/10165028 https://avg.163.com/topic/detail/10164059 https://avg.163.com/topic/detail/10165001 https://avg.163.com/topic/detail/10164974 https://avg.163.com/topic/detail/10164975 https://avg.163.com/topic/detail/10164971 https://avg.163.com/topic/detail/10164963 https://avg.163.com/topic/detail/10164954 https://avg.163.com/topic/detail/10164923 https://avg.163.com/topic/detail/10164903 https://avg.163.com/topic/detail/10164866 https://avg.163.com/topic/detail/10164814 https://avg.163.com/topic/detail/10164033 https://avg.163.com/topic/detail/10163964 https://avg.163.com/topic/detail/10164805 https://avg.163.com/topic/detail/10164795 https://avg.163.com/topic/detail/10163982 https://avg.163.com/topic/detail/10163993 https://avg.163.com/topic/detail/10164670 https://avg.163.com/topic/detail/10164013 https://avg.163.com/topic/detail/10164031 https://avg.163.com/topic/detail/10164019 https://avg.163.com/topic/detail/10164585 https://avg.163.com/topic/detail/10164584 https://avg.163.com/topic/detail/10163925 https://avg.163.com/topic/detail/10164581 https://avg.163.com/topic/detail/10164580 https://avg.163.com/topic/detail/10164579 https://avg.163.com/topic/detail/10164563 https://avg.163.com/topic/detail/10163958 https://avg.163.com/topic/detail/10164534 https://avg.163.com/topic/detail/10164524 https://avg.163.com/topic/detail/10164516 https://avg.163.com/topic/detail/10163984 https://avg.163.com/topic/detail/10164503 https://avg.163.com/topic/detail/10164501 https://avg.163.com/topic/detail/10164494 https://avg.163.com/topic/detail/10164493 https://avg.163.com/topic/detail/10164405 https://avg.163.com/topic/detail/10164480 https://avg.163.com/topic/detail/10164462 https://avg.163.com/topic/detail/10164460 https://avg.163.com/topic/detail/10164442 https://avg.163.com/topic/detail/10164423 https://avg.163.com/topic/detail/10164427 https://avg.163.com/topic/detail/10164420 https://avg.163.com/topic/detail/10163964 https://avg.163.com/topic/detail/10164407 https://avg.163.com/topic/detail/10164406 https://avg.163.com/topic/detail/10164403 https://avg.163.com/topic/detail/10164392 https://avg.163.com/topic/detail/10164383 https://avg.163.com/topic/detail/10164365 https://avg.163.com/topic/detail/10163920 https://avg.163.com/topic/detail/10163922 https://avg.163.com/topic/detail/10164315 https://avg.163.com/topic/detail/10163993 https://avg.163.com/topic/detail/10164309 https://avg.163.com/topic/detail/10164295 https://avg.163.com/topic/detail/10164056 https://avg.163.com/topic/detail/10164234 https://avg.163.com/topic/detail/10164233 https://avg.163.com/topic/detail/10164232 https://avg.163.com/topic/detail/10164231 https://avg.163.com/topic/detail/10164227 https://avg.163.com/topic/detail/10164225 https://avg.163.com/topic/detail/10164220 https://avg.163.com/topic/detail/10164221 https://avg.163.com/topic/detail/10163990 https://avg.163.com/topic/detail/10163939 https://avg.163.com/topic/detail/10164187 https://avg.163.com/topic/detail/10164035 https://avg.163.com/topic/detail/10164153 https://avg.163.com/topic/detail/10164148 https://avg.163.com/topic/detail/10164149 https://avg.163.com/topic/detail/10164147 https://avg.163.com/topic/detail/10164146 https://avg.163.com/topic/detail/10164145 https://avg.163.com/topic/detail/10163946 https://avg.163.com/topic/detail/10164144 https://avg.163.com/topic/detail/10164132 https://avg.163.com/topic/detail/10164114 https://avg.163.com/topic/detail/10164101 https://avg.163.com/topic/detail/10164067 https://avg.163.com/topic/detail/10164054 https://avg.163.com/topic/detail/10164061 https://avg.163.com/topic/detail/10164060 https://avg.163.com/topic/detail/10164059 https://avg.163.com/topic/detail/10163969 https://avg.163.com/topic/detail/10164058 https://avg.163.com/topic/detail/10163970 https://avg.163.com/topic/detail/10164057 https://avg.163.com/topic/detail/10164056 https://avg.163.com/topic/detail/10164055 https://avg.163.com/topic/detail/10164053 https://avg.163.com/topic/detail/10164052 https://avg.163.com/topic/detail/10164051 https://avg.163.com/topic/detail/10164050 https://avg.163.com/topic/detail/10164049 https://avg.163.com/topic/detail/10164047 https://avg.163.com/topic/detail/10164048 https://avg.163.com/topic/detail/10164046 https://avg.163.com/topic/detail/10164044 https://avg.163.com/topic/detail/10164043 https://avg.163.com/topic/detail/10164042 https://avg.163.com/topic/detail/10164041 https://avg.163.com/topic/detail/10164039 https://avg.163.com/topic/detail/10164040 https://avg.163.com/topic/detail/10164036 https://avg.163.com/topic/detail/10164035 https://avg.163.com/topic/detail/10164034 https://avg.163.com/topic/detail/10164033 https://avg.163.com/topic/detail/10164031 https://avg.163.com/topic/detail/10164032 https://avg.163.com/topic/detail/10164025 https://avg.163.com/topic/detail/10164030 https://avg.163.com/topic/detail/10164029 https://avg.163.com/topic/detail/10164028 https://avg.163.com/topic/detail/10164027 https://avg.163.com/topic/detail/10164026 https://avg.163.com/topic/detail/10163991 https://avg.163.com/topic/detail/10163930 https://avg.163.com/topic/detail/10164024 https://avg.163.com/topic/detail/10164022 https://avg.163.com/topic/detail/10164021 https://avg.163.com/topic/detail/10164020 https://avg.163.com/topic/detail/10164018 https://avg.163.com/topic/detail/10164019 https://avg.163.com/topic/detail/10164017 https://avg.163.com/topic/detail/10163871 https://avg.163.com/topic/detail/10164016 https://avg.163.com/topic/detail/10164015 https://avg.163.com/topic/detail/10164014 https://avg.163.com/topic/detail/10164013 https://avg.163.com/topic/detail/10164012 https://avg.163.com/topic/detail/10164011 https://avg.163.com/topic/detail/10164010 https://avg.163.com/topic/detail/10164008 https://avg.163.com/topic/detail/10164007 https://avg.163.com/topic/detail/10163925 https://avg.163.com/topic/detail/10164006 https://avg.163.com/topic/detail/10163790 https://avg.163.com/topic/detail/10164005 https://avg.163.com/topic/detail/10164004 https://avg.163.com/topic/detail/10164003 https://avg.163.com/topic/detail/10164002 https://avg.163.com/topic/detail/10164001 https://avg.163.com/topic/detail/10164000 https://avg.163.com/topic/detail/10163999 https://avg.163.com/topic/detail/10163935 https://avg.163.com/topic/detail/10163997 https://avg.163.com/topic/detail/10163996 https://avg.163.com/topic/detail/10163995 https://avg.163.com/topic/detail/10163994 https://avg.163.com/topic/detail/10163992 https://avg.163.com/topic/detail/10163993 https://avg.163.com/topic/detail/10163989 https://avg.163.com/topic/detail/10163991 https://avg.163.com/topic/detail/10163990 https://avg.163.com/topic/detail/10163988 https://avg.163.com/topic/detail/10163987 https://avg.163.com/topic/detail/10163984 https://avg.163.com/topic/detail/10163983 https://avg.163.com/topic/detail/10163982 https://avg.163.com/topic/detail/10163981 https://avg.163.com/topic/detail/10163888 https://avg.163.com/topic/detail/10163980 https://avg.163.com/topic/detail/10163934 https://avg.163.com/topic/detail/10163976 https://avg.163.com/topic/detail/10163978 https://avg.163.com/topic/detail/10163979 https://avg.163.com/topic/detail/10163977 https://avg.163.com/topic/detail/10163975 https://avg.163.com/topic/detail/10163974 https://avg.163.com/topic/detail/10163973 https://avg.163.com/topic/detail/10163972 https://avg.163.com/topic/detail/10163970 https://avg.163.com/topic/detail/10163969 https://avg.163.com/topic/detail/10163968 https://avg.163.com/topic/detail/10163967 https://avg.163.com/topic/detail/10163848 https://avg.163.com/topic/detail/10163965 https://avg.163.com/topic/detail/10163873 https://avg.163.com/topic/detail/10163964 https://avg.163.com/topic/detail/10163963 https://avg.163.com/topic/detail/10163962 https://avg.163.com/topic/detail/10163960 https://avg.163.com/topic/detail/10163961 https://avg.163.com/topic/detail/10163959 https://avg.163.com/topic/detail/10163958 https://avg.163.com/topic/detail/10163956 https://avg.163.com/topic/detail/10163955 https://avg.163.com/topic/detail/10163954 https://avg.163.com/topic/detail/10163953 https://avg.163.com/topic/detail/10163952 https://avg.163.com/topic/detail/10163828 https://avg.163.com/topic/detail/10163950 https://avg.163.com/topic/detail/10163949 https://avg.163.com/topic/detail/10163760 https://avg.163.com/topic/detail/10163948 https://avg.163.com/topic/detail/10163935 https://avg.163.com/topic/detail/10163946 https://avg.163.com/topic/detail/10163945 https://avg.163.com/topic/detail/10163944 https://avg.163.com/topic/detail/10163943 https://avg.163.com/topic/detail/10163942 https://avg.163.com/topic/detail/10163938 https://avg.163.com/topic/detail/10163939 https://avg.163.com/topic/detail/10163941 https://avg.163.com/topic/detail/10163940 https://avg.163.com/topic/detail/10163937 https://avg.163.com/topic/detail/10163936 https://avg.163.com/topic/detail/10163934 https://avg.163.com/topic/detail/10163933 https://avg.163.com/topic/detail/10163932 https://avg.163.com/topic/detail/10163931 https://avg.163.com/topic/detail/10163930

注意:默认情况下,int、short、long都是带符号的,即 signed。

注意:long int 8 个字节,int 都是 4 个字节,早期的 C 编译器定义了 long int 占用 4 个字节,int 占用 2 个字节,新版的 C/C++ 标准兼容了早期的这一设定。

数据类型描述大小(字节)范围/取值示例
bool 布尔类型,表示真或假 1 true 或 false
char 字符类型,通常用于存储 ASCII 字符 1 -128 到 127 或 0 到 255
signed char 有符号字符类型 1 -128 到 127
unsigned char 无符号字符类型 1 0 到 255
wchar_t 宽字符类型,用于存储 Unicode 字符 2 或 4 取决于平台
char16_t 16 位 Unicode 字符类型(C++11 引入) 2 0 到 65,535
char32_t 32 位 Unicode 字符类型(C++11 引入) 4 0 到 4,294,967,295
short 短整型 2 -32,768 到 32,767
unsigned short 无符号短整型 2 0 到 65,535
int 整型 4 -2,147,483,648 到 2,147,483,647
unsigned int 无符号整型 4 0 到 4,294,967,295
long 长整型 4 或 8 取决于平台
unsigned long 无符号长整型 4 或 8 取决于平台
long long 长长整型(C++11 引入) 8 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long long 无符号长长整型(C++11 引入) 8 0 到 18,446,744,073,709,551,615
float 单精度浮点数 4 约 ±3.4e±38(6-7 位有效数字)
double 双精度浮点数 8 约 ±1.7e±308(15 位有效数字)
long double 扩展精度浮点数 8、12 或 16 取决于平台

C++11 新增类型

数据类型描述示例
auto 自动类型推断 auto x = 10;
decltype 获取表达式的类型 decltype(x) y = 20;
nullptr 空指针常量 int* ptr = nullptr;
std::initializer_list 初始化列表类型 std::initializer_list<int> list = {1, 2, 3};
std::tuple 元组类型,可以存储多个不同类型的值 std::tuple<int, float, char> t(1, 2.0, 'a');

注意,各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。

以下列出了32位系统与64位系统的存储大小的差别(windows 相同):

从上表可得知,变量的大小会根据编译器和所使用的电脑而有所不同。

下面实例会输出您电脑上各种数据类型的大小。

实例

赞(0)
未经允许不得转载:171主机测评 » C++ 数据类型46777
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址