[C++ primer]第2章 变量和基本类型

*谨做个人笔记,本系列不建议初学者以系统性学习为目的的使用

C++ 11:

定义了数据类型long long, 至少和一个long一样大,对32位机器而言,一般是64位 即8字节

算术类型

字符型不同于其他基本类型,被分成三种,char,signed char以及unsigned char

但是表现形式只有两种:带符号或者无符号的。类型char会变现为两种之一,具体哪种取决与编译器

所以在算术表达式中不建议使用char,因为不同编译器的结果不同

类型转换

浮点赋整型,只保留整数部分,不是四舍五入

赋给带符号类型超出他能表示的范围时,结果是未定义的

赋给无符号类型超出他能表示的范围时,结果是这个值对此无符号类型所能表示数值总数(如unsigned char表示0-255,总数为256)取模后的余数,此原理也适用于将一个负数赋给一个无符号数。

//如下所示,死循环

for (unsigned i = 10; i >= 0; --i)

...

字面值常量

形如42这样的数被称为字面值常量

十进制的字面值是有符号数,是int, long, long long中能容纳他的最小的那个

八进制或者十六进制的字面值,是int, unsigned int, long, unsigned long, long long, unsigned long long中能容纳他最小的那个,所以不一定带符号

-42的字面值,负号并不在字面值之内,负号是对字面值进行取负

默认浮点类型的字面值是一个double

也可以指定字面值的类型:

L‘a‘      //宽字符型字面值,wchar_t

u8“HI”   //UTF-8字符串字面值

3.1415L  //long double

细则见P37

变量

当对象在创建时获得了一个特定的值,称之为初始化

=可以用于初始化,当然也可以用于后续赋值。初始化和赋值完全不同

初始化含义是创建变量时赋予一个初始值;赋值含义是把对象当前值擦除,用一个新值来替代。

C++ 11:列表初始化
用花括号来初始化变量。这种初始化方式更为严格,如果使用列表初始化时初始值存在信息丢失的风险,编译器将报错。

long double ld = 3.141592653
int a{ld}, b = {ld}; //报错
int c(ld), d = ld; //正确,但丢失部分信息

时间: 2024-10-11 21:40:31

[C++ primer]第2章 变量和基本类型的相关文章

<<C++ Primer>> 第 2 章 变量和基本类型 术语表

术语表 第 2 章 变量和基本类型 地址(address): 是一个数字,根据它可以找到内存中的一个字节 ?? 别名生命(alias declaration): 为另一种类型定义一个同义词:使用 "名字 = 类型" 的格式将名字作为该类型的同义词. ?? 算术类型(arithmetic type): 布尔值,字符,整数,浮点数等内置类型. ?? 数组(array): 是一种数据结果,存放着一组未命名的对象,可以通过索引来访问这些对象. ?? auto: 是一种类型说明符,通过变量的初始

C++ Primer学习总结 第1-2章 变量和基本类型

第1-2章 变量和基本类型 1.下面这个语句在C++98和C++11中的输出结果不同. C++98结果: (如果想要更高的精度,可以用%.9lf,输出9位有效数字) C++11结果: 结论: printf的%lf在C++11中表示longdouble,所以用中%f就可以输出float和double类型.而printf在C++98中可以用%lf正确输出double. 如果是scanf的话,不论C++98还是C++11中float都用%f读取,double都用%lf读取,因为二者结构不同.   2.

C++ Primer 笔记(2)第二章 变量与基本类型

第二章 变量与基本类型 1.基本内置类型包括算术类型和空类型,算术类型分为两类:整型(包括字符和布尔类型)和浮点型: 2.布尔类型(bool)的取值是真(true)或者假(false): 3.字面值常量:每个字面值常量都对应一种数据类型,字面值常量的形式和值决定了它的数据类型, 由单引号括起来的一个字符是char型字面值,有双引号括起来的零个或者多个字符则构成字符串字面值: 20  整形字面值 ‘a’ 字符字面值 “Hello World”或者“”都会字符串字面值 ‘A’表示单独字符A,而“A”

C++primer笔记2:变量和基本类型、字符串,向量和数组、表达式、类

第2章:变量和基本类型 char 8位 bool 未定义 short 短整型16 int 整型16 long 长整型32 long long 长整型64 C++11新定义的 float: 1个字 32位 6位有效位 double: 2个字 64位 10位有效位 long double: 10位有效位 带符号和不带符号的 unsigned 不带符号 仅仅表示大于0的 signed 带符号 大于,小于,0 基本字符集 :比特位 可寻址的最小内存块:字节 8比特 存储的基本单位 :字 32或64比特

第2章 变量和基本类型

2015-10-08 20:18:32 注:  之前解除过C++比较少,只学过C语言. ----------------------------------------------------------- 内置类型是编程语言自己定义的一些类型,不需要我们自己定义了. 比如bool.int: 空类型Void  不对应具体的值,仅用于特殊的场合,例如最常见的是,当函数不反悔任何值时使用空类型作为返回值. 使用浮点数时,选用double---因为float的精度不够,且计算的时候,双精度和单精度的代

C++ Primer 学习笔记_5_变量和基本类型(续2)

 变量和基本类型 七.枚举 枚举不但定义了整数常量集,并且还把它们聚集成组. 枚举与简单的const常量相比孰优孰劣, 通过以下一段代码. 一看便知: [cpp] view plaincopyprint? enum {input, output, append}; const int input = 0; const int output = 1; const int append = 2; enum {input, output, append}; const int input = 0;

C++ Primer 学习笔记_3_变量和基本类型

 变量和基本类型 引言: 1.各种程序设计语言都具有许多各具特色的特征,这些特征决定了用每种语言适合开发哪些类型的应用程序. 2.大多数现代现代程序设计语言都采用两种方式扩充语言的基本特征集:允许程序员通过自定义数据类型扩充该语言:提供一组库例程,这些例程定义了一些并非内置在语言中的实用函数和数据类型. 3.C++是静态类型语言,支持在编译时执行类型检查. 4.包括C++在内的其他语言允许程序员定义的类型不仅有数据还包含操作! 5.掌握C++的第一步就是学习语言的基本知识和标准库! 6.类型

C++ Primer 学习笔记_4_变量和基本类型(续1)

 变量和基本类型 四.const限定符 [cpp] view plaincopyprint? #include <iostream> int main() { //for循环语句存在两个问题 for (int index = 0;index != 512; ++index) { //... } return 0; } /* *1.程序的可读性:存在魔数512[魔数:他的意义在上下文中并没有体现出来,好像这个数是魔术般变出来的] *2.程序的可维护性... */ #include <i

第二章 变量和基本类型(2)

2.1 基本内置类型(略过,没什么可写的,都是一些基本的东西) 2.2 字面值常量 5.字符串字面值 1.之前的字面值都是基本的内置类型 2.字符串字面值,是用双引号括起来的0个和多个字符表示,""或者"hello word" 3.为了兼容C语言,C++中所有的字符串字面值都有编译器g++自动在末尾添加一个空字符. 4.字符字面值'A',表示的是单个字符A 5.字符串字面值"A",表示的是字母A和空字符,2个字符的字符串 2.3 变量 关键概念: