声明:本文整理自《C++ Primer Plus》
100天之第2天 第三章 处理数据
01 运算符sizeof和头文件limits
对类型名(如int)使用sizeof运算符时需要加括号,对变量名使用sizeof运算符时,不用加括号
cout<<sizeof(int)<<endl;
cout<<sizeof n_short<<endl;
头文件climits定义了符号常量来表示类型的限制。
符号常量
|
表示
|
CHAR_BIT
|
char的位数(8)
|
INT_MAX
|
int的最大值(2147483647)
|
02 C++11初始化方式
用于数组和结构,也可用于单值变量。
int number = {8};
int number {};
可以使用等号也可以不使用。可以不包含任何东西,这样便默认值为0。
03 整型溢出行为
假设short表示的范围为-32768到+32767,usigned short表示范围为0到65535.
short sam=32767
usigned short sue=32767
sam+1之后值为-32768,因为+32768超出了short的表示范围,所以其值将为范围另一端的取值。
sue+1之后值为32768
short sam=0
usigned sue=0
sam-1值为-1
sue-1值为65535,原理同上。
04 C++确定常量的类型
除非有后缀,则一般把整型常量存储成int型。
int被设置成对目标计算机而言处理效率最高的长度。
05 cout.put()函数
该函数显示一个字符。通过类对象cout来使用函数put().
Release2.0之后,C++将字符常量存储为char类型。
cout.put('M')//输出一个字母M
06 C++转义序列
最常用的书写字符常量的方式:将字符用单引号括起。
字符名称
|
ASCII符号
|
C++代码
|
换行符
|
NL(LF)
| \n |
反斜杠 | \ |
\\
|
问号
|
?
|
\?
|
单引号
|
'
|
\'
|
双引号 | " |
\"
|
07 通用字符名
通用字符名以\u(后面跟8个十六进制位)或\U(后面跟16个十六进制位)开头
声明的变量名显示为
输出:
08 signed char和unsigned char、wchar_t、char16_t和char32_t、bool类型
signed char表示范围-128到127
usigned char表示范围0到255.
使用usigned char可以在任何系统上使用char变量来存储像200这样大的值。
8位char可以表示基本字符集,wchar_t(宽字符类型,是一种整数类型)表示扩展字符集。
wcin和wcout用于处理
wchar_t流,加前缀L来指示宽字符常量和宽字符串。
将每个字符存储在一个两个字节的内存单元中。
使用前缀u表示char16_t的字符常量和字符串常量,使用前缀U表示char32_t的字符常量和字符串常量。
任何非0值都可以转为true,0值都可以转为false。
09 const限定符
const比#define好的三点
- 能够明确指定类型
- 可以使用C++的作用域规则将定义限制在特定的函数或文件中(作用域规则描述名称在各种模块中的可知程度)
- const可适用于更复杂的类型如数组和结构。(const可以用来声明数组长度)
10 浮点数
E表示法
指数为负数表示除以10的乘方。
cout.setf() ,使输出使用定点表示法,防止程序把较大的值切换为E表示法,并使程序显示到小数点后6位。
cout.setf(ios_base::fixed,ios_base::floatfield);
浮点常量默认是double类型,若想为float类型,则在常量后加加后缀f或F
11 C++算数运算符
算符运算符遵循代数优先级,当两个运算符优先级相同时,C++看操作数的结合性是从左到右(当两个优先级相同的运算符被同时用于同一个操作数时,从左侧开始运算)还是从右到左。乘除都是从左到右结合的。
120/4*5,应该先算120/4=30,然后30*5