`

C++基本数据类型列表

    博客分类:
  • C++
阅读更多

 

ANSI C/C++ 基本数据类型:

Type

Size

数值范围

无值型 void

0 byte

无值域

布尔型 bool    

1 byte

true   false

有符号短整型 short [int] /signed short [int]

2 byte

-32768~32767

无符号短整型 unsigned short [int]  

2 byte

0~65535

有符号整型 int /signed [int]

4 byte

-2147483648~2147483647

无符号整型 unsigned [int]

4 byte

0~4294967295

有符号长整型 long [int]/signed long [int]

4 byte

-2147483648~2147483647

无符号长整型 unsigned long [int]

4 byte

0~4294967295

long long

8 byte

0~18446744073709552000

有符号字符型 char/signed char

1 byte

-128~127

无符号字符型 unsigned char

1 byte

0~255

宽字符型 wchar_t (unsigned short.)

2 byte

0~65535

单精度浮点型 float 

4 byte

-3.4E-38~3.4E+38

双精度浮点型 double

8 byte

1.7E-308~1.7E+308

long double

8 byte

说明:

 

1 )类型修饰符 signed unsigned 用于修饰字符型和整形。

2 )类型修饰符 short long 用于修饰字符型和整形。

3 )当用 signed unsigned short long 修饰 int 整形时, int 可省略。

4 )其中 bool wchar_t C++ 特有的。

5 )除上表以外, C/C++ 都可以自定义枚举 enum 、联合 union struct 结构体类型。

6 )以上 sizeof 通过 Windows XP 32 位平台测试,其中某些类型数据的字节数和数值范围由操作系统和编译平台决定。比如 16 位机上, sizeof(int) = 2 ,而 32 位机上 sizeof(int) = 4 32 位机上 sizeof(long) = 4 ,而 64 位机上 sizeof(long) = 8 。除此之外,注意 64 位机上的 pointer 8byte

7 void 的字面意思是 无类型 ,不能用来定义变量。 void 真正发挥的作用在于: <1> 对函数返回和函数参数的限定,例如自定义既不带参数也无返回值的函数 void MyFunc(void);<2> 定义无类型通用指针 void * ,指向任何类型的数据。

8 )标准 C++ 库及 STL 还提供了通用数据结构:字符串类 string ;向量类模板 vector ;双端队列类模板 deque ;链表类模板 list ;容器适配器堆栈类 stack (实现先进后出的操作);容器适配器队列类 queue (实现先进先出的操作);集合类 set ;多重集合类 multiset ;映射类 map ;多重映射类 multimap ;位集合 bitset ;迭代器 iterator ( 类似指针的功能 , 对容器的内容进行访问 )

9 在标准 c++ 中, int 的定义长度要依靠你的机器的字长,也就是说,如果你的机器是 32 位的, int 的长度为 32 位,如果你的机器是 64 位的,那么 int 的标准长度就是 64 位,而 vc __int64 是为在 32 机位机器长实现 64 位长度的整形数。

10 )关于 32 位平台下的 int long

long 从字面上看,应该是 64 位才更合理,把 long 当成 32 位实在是一个历史的包袱。像 C# 那样新起炉灶的程序语言,由于没有需要支持老代码的问题,就把 long 当作 64 位来处理了。

32 位平台下, long 是相对 short 而言, long short )类型是 long short int 类型的简称, sizeof(long) = sizeof(int) = 4 int long 的范围虽然一样 , 但输入输出格式不同 ,printf int 的格式为 %d ,而 printf long 的格式为 %ld

考虑到程序的可移植性,还是要将他们区分开来。但当要求的数值范围为 4byte 时,建议使用 int 类型,因为第一版的 C 语言只有一种类型,那就是 int

11 )在 Win32 API MFC 中为了使类型名称在语意上更明了,对以上基本类型进行了大量的 typedef 。例如 WINDEF.H 中的 BYTE,WORD,DWORD

12 )计算机内部内存的基本单位是1byte(8个电子开关)!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics