C++ Primer 笔记——基本内置类型
1.算术类型分为两类:整型和浮点型。算术类型的尺寸在不同机器上有所差别,下表列出了C++标准规定的尺寸的最小值。同时允许编译器赋予这些类型更大的尺寸。
一个char的大小和一个机器字节一样。
一个int至少和一个short一样大;
一个long至少和一个int一样大;
一个long long至少和一个long一样大;
以下摘自MSDN:
类别 | 类型 | 内容 |
---|---|---|
整数 | char |
类型 char 是通常包含基本执行字符集成员的整数类型 - 默认情况下,这是 Microsoft C++ 中的 ASCII。C++ 编译器将 char 、signed char 和 unsigned char 类型的变量视为不同类型。char 类型的变量将提升到 int ,就像它们在默认情况下是 signed char 类型一样,除非使用 /J 编译选项。 在这种情况下,它们被视为 unsigned char 类型并提升为 int (没有符号扩展)。 |
bool |
bool 类型是可以具有 true 或 false 这两个值之一的整数类型。 其大小未指定。 |
|
short |
short int 类型(或 short )是大于或等于 char 类型的大小但小于或等于 int 类型的大小的整型类型。short 类型的对象可声明为 signed short 或 unsigned short 。Signed short 是 short 的同义词。 |
|
int |
int 类型是大于或等于 short int 类型的大小但小于或等于 long 类型的大小的整数类型。int 类型的对象可声明为 signed int 或 unsigned int 。Signed int 是 int 的同义词。 |
|
__int8 , __int16 , __int32 , __int64 , __int128 |
固定大小的整数 __int``n ,其中 n 是整数变量的大小(以比特为单位)。 (__int8 、__int16 、__int32 、__int64 和 __int128 是 Microsoft 专用的关键字。 并非所有类型在所有体系结构上都可用。) |
|
long |
long 类型(或 long int )是大于或等于 int 类型的大小的整数类型。long 类型的对象可声明为 signed long 或 unsigned long 。Signed long 是 long 的同义词。 |
|
long long |
大于无符号 long 。long long 类型的对象可声明为 signed long long 或 unsigned long long 。Signed long long 是 long long 的同义词。 |
|
wchar_t , __wchar_t |
wchar_t 类型的变量指定宽字符或多字节字符类型。 默认情况下,wchar_t 是本机类型,但可以使用 /Zc: wchar_t- 使 wchar_t 成为 unsigned short 的 typedef。__wchar_t 类型是本机 wchar_t 类型的 Microsoft 专用同义词。在字符或字符串文本前使用 L 前缀可指定宽字符类型。 |
|
浮点 | float |
float 类型是最小的浮点类型。 |
double |
double 类型是大于或等于 float 类型的大小但小于或等于 long double 类型的大小的浮点类型。Microsoft 专用: long double 和 double 的表示形式完全相同。 但是,long double 和 double 是不同的类型。 |
|
long double |
long double 类型是大于或等于 double 类型的浮点类型。 |
Microsoft 专用
下表列出了 Microsoft C++ 中的基础类型所需的存储量。
类型 | 大小 |
---|---|
bool , char , unsigned char , signed char , __int8 |
1 个字节 |
__int16 , short , unsigned short , wchar_t , __wchar_t |
2 个字节 |
float , __int32 , int , unsigned int , long , unsigned long |
4 个字节 |
double , __int64 , long double , long long |
8 个字节 |
__int128 |
16 个字节 |
下表中指定的范围均包含起始值和结束值。
类型名称 | 字节 | 其他名称 | 值的范围 |
---|---|---|---|
int | 4 | signed | –2,147,483,648 到 2,147,483,647 |
unsigned int | 4 | unsigned | 0 到 4,294,967,295 |
__int8 | 1 | char | –128 到 127 |
unsigned __int8 | 1 | unsigned char | 0 到 255 |
__int16 | 2 | short、short int、signed short int | –32,768 到 32,767 |
unsigned __int16 | 2 | unsigned short、unsigned short int | 0 到 65,535 |
__int32 | 4 | signed、signed int、int | –2,147,483,648 到 2,147,483,647 |
unsigned __int32 | 4 | unsigned、unsigned int | 0 到 4,294,967,295 |
__int64 | 8 | long long、signed long long | –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned __int64 | 8 | unsigned long long | 0 到 18,446,744,073,709,551,615 |
bool | 1 | 无 | false 或 true |
char | 1 | 无 | -128 到 127(默认) 0 到 255(当使用 /J 编译时) |
signed char | 1 | 无 | –128 到 127 |
unsigned char | 1 | 无 | 0 到 255 |
short | 2 | short int、signed short int | –32,768 到 32,767 |
unsigned short | 2 | unsigned short int | 0 到 65,535 |
long | 4 | long int、signed long int | –2,147,483,648 到 2,147,483,647 |
unsigned long | 4 | unsigned long int | 0 到 4,294,967,295 |
long long | 8 | 无(与 __int64 等效) | –9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long long | 8 | 无(与无符号的 __int64 等效) | 0 到 18,446,744,073,709,551,615 |
enum | varies | 无 | 请参阅本文后面的备注 |
float | 4 | 无 | 3.4E +/- 38(7 位数) |
double | 8 | 无 | 1.7E +/- 308(15 位数) |
long double | 与 double 相同 | 无 | 与 double 相同 |
wchar_t | 2 | __wchar_t | 0 到 65,535 |
2.当我们赋给无符号类型一个超出它范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的。
3.当一个算术表达式中既有无符号数又有int值时,那个int值就会转换成无符号数。
4.以0开头的整数代表八进制,以0x 0X开头的代表十六进制数。
5.指定字面值的类型。
C++ Primer 笔记——基本内置类型的更多相关文章
- 流畅python学习笔记:第十二章:子类化内置类型
子类化内置类型 在python2.2之后,内置类型都可以子类化,但是有一个注意事项:内置类型不会调用用户定义的类覆盖的特殊方法.这个说起来比较绕口,什么意思呢.我们来看下下面的代码: class Do ...
- c++ primer 笔记 (一)
昨天开始看的<C++ Primer>,确实不错.希望这周抓紧看完,每天做下笔记,以便以后复习. main函数返回一个值给操作系统 操作系统通过main函数返回的值来确定程序是否成功执行 ...
- C++ Primer笔记
C++ Primer笔记 ch2 变量和基本类型 声明 extern int i; extern int i = 3.14;//定义 左值引用(绑定零一变量初始值,别名) 不能定义引用的引用:引用必须 ...
- C++ Primer 笔记 第二章
C++ Primer 第二章 变量和基本类型 2.1基本内置类型 有算数类型和void类型:算数类型储存空间大小依及其而定. 算数类型表: 类型 含义 最小储存空间 bool 布尔型 - char 字 ...
- C++基本内置类型
C++基本内置类型 基本内置类型包括算术类型和空类型. 算术类型 算术类型包括整型和浮点型. 类型 含义 最小尺寸 bool 布尔型 - char 字符型 8 bit wchar_t 宽字符型 16 ...
- C++ Primer 笔记——数组
1.数组的大小是固定不变的,声明时必须指定大小(或者使用列表初始化),而且大小必须大于0,C++ Primer里面也建议,如果不确定元素的个数,请使用vector. ]; , , }; //数组长度固 ...
- c++ primer 笔记 (二)
第二章笔记 (貌似记得有点多) 把负值赋给unsigned对象时完全合法的,其结果是该负数对该类型的取值个数求模后的值 -1 (对265求模) 255 float型只能保证6位 ...
- 笔记-pyton内置数据类型
笔记-pyton内置数据类型 1. 简介 The principal built-in types are numerics, sequences, mappings, classes, i ...
- golang的内置类型map的一些事
golang的map类型是一个比较特殊的类型,不同于int, string, byte这样的基本类型,在经过一番探究之后得出了一些结论: 1.golang的map类型虽然是内置类型,但和基本类型有很大 ...
随机推荐
- java后台获取参数乱码
String title = getParam("searchTitle"); title = new String(title.getBytes("iso8859-1& ...
- python selenium+phantomJS自动化测试环境
0x00配置phantomJS 1. 在windows平台下 此种方法是弹浏览器进行自动化测试的. 1.下载谷歌的驱动 https://chromedriver.storage.googleapis. ...
- python问题:TypeError: a bytes-like object is required, not 'str'
源程序: import socket target_host = "www.baidu.com" # 127.0.0.1 target_port = 80 # 建立一个socket ...
- python基础-----类和实例
在python中,首字母大写的名称指的是类,这个类定义中括号的内容是空的. 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板而实例是根据类创建出来的一个个具体 ...
- flask基本介绍及虚拟环境
Flask Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎 ...
- 2016521-Java-第八周学习总结
课本知识点 start() run()定义线程线程对象被调度之后所执行的操作 -sleep(int millsecond),必须在try-catch语句块中调用sleep方法 sAlive() 线程同 ...
- 基本类型变量、引用类型变量的在java中的存放位置
一.局部变量存储在方法栈中 在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就放在方法栈中,当方法结束系统会释放方法栈,其对应在该方法 ...
- linux 工具学习网站
推荐一个很不错的linux工具学习网站; 对于一个开发人员来说,我觉得掌握这些工具对于基于linux的应用开发来说事半功倍. http://linuxtools-rst.readthedocs.io/ ...
- React组件State提升(译)
译自:https://reactjs.org/docs/lifting-state-up.html (适当进行了裁减) 通常我们会碰到这样的情况,当某个组件的state数据改变时,几个React组件同 ...
- nginx的linux服务器内核参数调整【转】
概述 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,让Nginx可以拥有更高的性能: 在优化内核时,可以做的事情很 ...