zoukankan      html  css  js  c++  java
  • 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个电子开关)!  

     
  • 相关阅读:
    小知识点随手记
    [学习笔记]行列式
    集群心跳机制
    [学习笔记]整数划分数
    如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1)
    [学习笔记]二叉树的遍历
    Oracle RAC/Clusterware 多种心跳heartbeat机制介绍 RAC超时机制分析
    bzoj4671: 异或图——斯特林反演
    为Oracle Clusterware修改公用及私有网络接口
    [学习笔记]斯特林反演
  • 原文地址:https://www.cnblogs.com/gamesky/p/2619357.html
Copyright © 2011-2022 走看看