c++primer plus 6 读书笔记 第三章 处理数据

简介: c++primer plus 6 读书笔记 第三章 处理数据

第 3 章处理数据

3.1 简单变量

 程序通常需要存储信息,为了把信息存储在计算机中,程序必须记录 3 个基本属性:

 储存位置;储存的值;信息类型。

3.1.1 变量名

C ++ 提倡有含义的变量名,遵循如下规则:

在名称中只能使用字母字符,数字,下划线( _ )。

开头不能是数字。

区分大小写。

用 C ++ 关键字做名称。

以两个下划线 或 下划线状语从句:字母大写 打头的名称被保留给实现(编译器及其使用的资源)使用以一个下划线开头的名称被保留给实现。,作为全局标识符。

C ++ 对名称的长度没有限制。

    使用多个单词组成名称时,可以使用下划线分割(boat_sport)或者首字母大写(boatSport)。

3.1.2 整型

整型就是没有小数部分的数字,如 2 ,98 ,-5286 ,0 数学中的整数是无限的,而在有限的计算机内存中无法表示无限的数。因此,语言只能表示整数的子集(一定范围的整数)。

C ++ 提供不同的内存量来存储整数。宽度(宽度)描述存储整数时使用的内存量。使用内存越多,则越宽 .C ++ 的基本整型(按宽度递增的顺序排列)分别为char ,short ,int ,long 和C ++ 新增的long long,其中每种类型都有有符号类型和无符号类型。

3.1.3 整型short、int、long、long long

计算机内存的基本单元是位(bit)。

C++保证了各种类型的最小长度。

short 16位,

int 不短于 short ,

long 至少 32 位,且不短于int

long long 至少64位,且不短于long.

3.1.4 无符号类型

无符号版本 前面加上unsigned 即可。

如 unsigned short change;

unsigned 本身是unsigned int 的缩写。

TIP:溢出:当某个值达到最大限制时再+1会变成什么?

会变成另一端的取值,可以将其看作一个圆,走到最大时再走一步,就到了最小的值。

如short sam = SHRT_MAX; sam = sam +1

sam 的值就从最大的32767 变成了 -32768.

3.1.5 选择整型类型

通常选择 int,除非有用其他类型的原因。

3.1.6 整型字面值

整型字面值(常量)是显式地书写的常量,如212.

C++能够以三种计数方式书写整数,基数位10,8,16。

C++使用前1或2表示数字常量的基数。

第一位位1~9 基数位10(十进制)。

第一位是0, 第二位是1~7,基数为8,(八进制)

前两位位0x或0X,则基数位16(十六进制);

对于十六进制数,字符a~f(大写也可)表示10~15。

而在计算机内部,只有一种存储方式----二进制。

TIP:iostream提供控制符dec,hex,oct,

使cout显示十进制,十六进制,八进制。

3.1.7 C++如何确定常量的类型

 除非有必要,C++将整型常量存储为int类型。

 后缀可以表示类型。l或L表示long,u或U表示unsigned int,

ul/UL表示unsigned long。c++提供ll/LL表示long long.

 

3.1.8 char类型:字符和小整数

char 为专门存储字符设计。变成语言通过字母的数字编码存储字母。美国最常用的字符集是ASCII字符集。ASCII中字符A的编码为65.

3.1.9 bool类型

bool类型只有true和false两种。

3.2 const限定符

使用const表示符号常量

如:const int Months = 12; 就可以在程序中使用Months代表12,使得含义更加清晰。常量初始化后,值固定不可修改。

创建常量的通用格式:

const type name = value;

3.3 浮点数

浮点数可以表示带小数部分的数字,且表示的值范围比整型更大。

3.3.1 书写浮点数

标准小数表示法: 12.34,100.001

E表示法:3.45E6 ,它的值是3.45 和 10的6次方的乘积。

         2.5E-31  它的值是2.5 除以 10的31次方。

注:e和E通用。

3.3.2 浮点类型

C++有三种浮点类型,float,double和long double.

它们的有效位分别至少是32,48,48 且后者不比前者少。

通常float是32位,double 64位, long double 为80、96,或128位。

3.3.3浮点常量

默认double,使用f/F后缀表示float, 使用l/L后缀表示long double。

3.3.4 浮点数的优缺点

优点:可以表示小数,表示范围大。

缺点:运算速度慢,精度降低

3.4 C++算数运算符

C ++ 提供基本算数运算:加法(+ ),减法(- ),除法(/ ),乘法(* ),求模(%)。

3.4.1 运算符优先级

建议使用()

C ++ 中运算优先级与代数优先级通常相同,先乘除后加减。

3.4.2 除法分支

两个操作数都是整数,将执行整数除法,结果小数部分直接舍弃。

如:9/5 = 1 ;

如果其中有浮点数,则保留小数部分。

3.4.3 求模运算符

求模返回整数除法的余数。

3.4.4 类型转换

3.4.5C ++ 中的自动声明

C ++ 提供auto 自动推断变量类型,如:auto n = 100 编译器将认为n 是int 。

相关文章
|
5月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
115 1
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
5月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
59 2
|
5月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
5月前
|
存储 数据挖掘 C语言
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
|
5月前
|
存储 安全 数据处理
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
【C++】C++ 超市会员卡管理系统(面向对象)(源码+数据)【独一无二】
131 1
|
6月前
|
存储 C++ 容器
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
开发与运维数组问题之C++标准库中提供数据容器作为数组的替代如何解决
71 5
|
6月前
|
设计模式 监控 Go
开发与运维C++问题之C++部分原有的数据发送能力如何解决
开发与运维C++问题之C++部分原有的数据发送能力如何解决
33 1
|
6月前
|
存储 数据格式 运维
开发与运维C++问题之更改数据模型为通用数据结构如何解决
开发与运维C++问题之更改数据模型为通用数据结构如何解决
32 1
|
5月前
|
存储 算法 C++
【C/C++】C/C++ KTV点歌系统设计与实现(源码+数据+报告)【独一无二】
【C/C++】C/C++ KTV点歌系统设计与实现(源码+数据+报告)【独一无二】
|
6月前
|
安全 算法 编译器
C++一分钟之-内存模型与数据竞争
【7月更文挑战第10天】了解C++11内存模型对多线程编程至关重要。它定义了线程间同步规则,包括顺序一致性、原子操作和内存屏障。数据竞争可能导致不确定行为,如脏读和丢失更新。可通过互斥量、原子操作和无锁编程避免竞争。示例展示了`std::mutex`和`std::atomic`的使用。掌握内存模型规则,有效防止数据竞争,确保多线程安全和性能。
78 0