第二章 变量和基本类型
eg:i=i+j
- 如果i,j都是整型数,则是普通加法运算
- 如果i,j是Sales_item类型的数据,则是把两个对象的成分相加
2.1 基本内置类型
算术类型(arithmetic type):字符、整型数、布尔值和浮点数
空类型(void):不对应具体的值 eg:当函数不返回任何值时使用空类型作为返回类型
2.1.1 算术类型
两类:整型(包括字符和布尔类型在内)和浮点型
布尔类型(bool)的取值时真(true)或者假(false)
基本的字符类型:char
浮点型:float,double分别由7和16个有效位
其他字符类型用于扩展字符集,如wchar_t,char16_t。wchar_t类型用于确保可以存放机器基本字符集中任意字符集中的任意一个字符
带符号类型和无符号类型
- 除去布尔型和扩展的字符型之外,其他整型可以划分为符号的(signed)和无符号的(unsigned)两种。
- 带符号类型可以表示整数,复数或0,无符号类型则仅能表示大于等于0的值。
- eg:int,short,long,long long都是带符号的,假unsigned得无符号类型,unsigned long,unsigned int.
- 字符型分为三种:char,signed char,unsigned char
2.1.2类型转换
将对象从一种给定的类型转换为另一种相关类型
看得不是很懂!!!
先放。。。
2.2.3 字面值常量
形如42的值被称为字面值常量。每个字面值常量都对应一种数字类型。
整型和浮点型字面值
整型字面值可以写作十进制数、八进制数或十六进制数的形式。以0开头的整数代表八进制数,以0x或0X开头的代表十六进制数
严格来说,十进制字面值不会是负数,弱国使用一个形如-42的负十进制字面值,那个负号并不在字面值之内,仅仅只是对字面值取负值而已。
浮点型字面值表示一个小鼠或以科学计数法表示的指数,其中指数部分用E或e表示。
默认的,浮点型字面值是一个double。
字符和字符串字面值
由单引号括起来的一个字符称为char型字面值,双引号括起来的零个或多个字符则构成字符串型字面值。
' a'//字符字面值
"Hello world! "//字符串字面值
字符串字面值的类型实际上是由常量字符构成的数组( array),编译器在每个字符串的结尾处添加一个空字符(’\0’),因此,字符串字面值的实际长度要比它的内容多1。
例如,字面值’A’表示的就是单独的字符A,而字符串"A"则代表了一个字符的数组,该数组包含两个字符:一个是字母A、另一个是空字符。 当书写的字符串字面值比较长,写在一行里不太合适时,就可以采取分开书写的方式: 分多行书写的字符串字面值
std: :cout << "a really, really long string literal "
"that spans two lines" <<std: :endl;
转义序列
两类字符不能直接使用:一类是不可打印的字符,eg:退格或其他控制字符;一类是在C++语言中有特殊的含义的字符(单引号,双引号,问号,反斜线)。这些情况下需要用到转义序列
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TGrBtVQ-1632396408636)(D:\大二课程\电子技术资料\笔记图片\QQ图片20210923190044.png)]
指定字面值的类型
通过添加前缀和后缀,可以改变整型,浮点型和字符型字面值的默认类型
长整型字面值,是哦也能够大写字母L
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cNPVOvRx-1632396408639)(D:\c++\C++ Primer\图片\QQ图片20210923190641.png)]
布尔字面值和指针字面值
true和false是布尔类型的字面值
nullptr是指针字面值
2.2 变量
“变量”和“对象”一般可以互换使用
2.2.1 变量定义
基本形式:类型说明符 变量(一个或多个)
其中:变量名以逗号分隔,以分号结束。定义时还可以赋初值。
int sum(0);
double a;
a=0;
Sales_item item;//item的类型Sales_item
//strings是一种库类型,表示一个可变长的字符序列
std::string book("0-201-78345-X"); //book通过一个string字面值初始化
book的定义用到了库类型std: :string,像iostream一样,string也是在命名空间std中定义的,第3章中对string类型会详细介绍。眼下,只需了解string是一种表示可变长字符序列的数据类型就可以了。C++库提供了几种初始化string对象的方法,其中一种是把字面值拷贝给string对象,上例中,book被初始化为0-201-78345-x。
“对象”:一块能存储数据并具有某种类型的内存空间
|