第2章第2部分1基本数据类型和表达式Word文档格式.docx
《第2章第2部分1基本数据类型和表达式Word文档格式.docx》由会员分享,可在线阅读,更多相关《第2章第2部分1基本数据类型和表达式Word文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
long
长整型
32位
float
单精度浮点型
6位有效数字
double
双精度浮点型
10位有效数字
longdouble
扩展精度浮点型
C++还定义了一种称为void的特殊类型。
void类型没有对应的值,通常用作无返回值函数的返回类型。
注意:
不同编译器实际分配空间不同,对于数值类型数据,推荐使用int类型和double类型。
练习1:
使用sizeof操作符测试自己所用编译器对C++基本类型存储空间分配情况。
sizeof操作符的作用是返回一个对象或类型名的长度(单位为字节),语法格式:
sizeof(类型名或变量名);
sizeof变量名
exa2-3:
#include<
iostream>
//usingnamespacestd;
intmain()
{
usingstd:
:
cout;
endl;
//使用名字空间的另一种方式
intm=12;
cout<
<
"
thesizeofanintis:
sizeof(int)<
thesizeofanshortis:
sizeof(short)<
thesizeofanlongis:
sizeof(long)<
thesizeofancharis:
sizeof(char)<
thesizeofanfloatis:
sizeof(float)<
thesizeofandoubleis:
sizeof(double)<
thesizeofanboolis:
sizeof(bool)<
sizeofm<
//测试变量m所分配存储空间
sizeof(m)<
system("
pause"
);
return0;
}
小结命名空间的三种使用方式:
(1)usingnamespacestd;
(2)using命名空间名:
:
对象名,比如usingstd:
(3)形如std:
cout<
“thesumis:
”<
std:
练习2:
编写简单的小程序,理解命名空间的三种使用方式。
2.2.2常量(字面常量)和符号常量
C++有两种常量:
字面常量与符号常量。
直接显式地使用的值称为常量,也称字面常量。
称之为字面是因为只能用它的值称呼它,称之为常量是因为它的值不能修改。
符号常量指用名字表示的常量,就像表示一个变量一样。
但与变量不同的是,常量一旦被初始化,其值就不能改变。
例如:
usingnamespacestd;
constdoublepi=3.14159;
//定义了一个名为pi的符号常量,且初始化值为3.14159
doubler,s=0;
//pi=3.1416;
错,符号常量的值一旦初始化,就不能再改变
pleaseinputr:
;
//"
为字符串常量,用一对双引号将字符序列括起来
cin>
>
r;
s=pi*r*r;
//通过符号常量名pi代替常量3.14159,利于程序修改,可读性强
s<
1.整型常量
可以使用三种进制形式:
十进制(默认)、八进制(以数字0开头的常量)和十六进制(以0x或0X开头)。
Eax2-4:
//12为十进制常数,系统默认
intk=012;
//12为八进制常数
intn=0x12;
//12为十六进制常数
m="
m<
k="
k<
n="
n<
默认情况下,cout以十进制格式显示整数(系统自动进行进制转换),而不管这些整数在程序中是如何书写的,程序运行结果如下:
m=12(12的十进制形式)
k=10(八进制12的十进制形式)
n=18(十六进制12的十进制形式)
但是,可以使用控制符dec、hex和oct以指定进制格式显示整数。
Exa2-5:
修改exa2-4
oct<
//以八进制形式输出
hex<
//以十六进制形式输出
12<
//仍以十六进制形式输出十进制数12
dec;
//恢复默认的十进制输出形式
也可以用后缀字母L(或l,但不提倡使用小写l,容易和数值1混淆)表示长整型;
后缀字母U(或u)表示无符号型。
思考:
能否以八进制或十六进制输入?
练习3:
练习十进制、八进制和十六进制形式的输入和输出。
2.实型常量
两种形式:
一般形式和指数形式。
一般形式:
例如12.5
指数形式:
例如,0.345E+2表示0.345×
102注意:
指数形式中不能出现空格;
字母E可大写也可小写。
实型常量默认为double类型。
3.字符常量
字符常量是单引号括起来的一个字符,比如’a’,占一个字节内存,两种:
一般字符和特殊字符。
特殊字符:
两种情况。
其一为非打印字符,不可显示,不能直接通过键盘输入到程序中,比如响铃、换行等,其二本身有特殊含义的字符,比如单引号,C++通过特殊的表示方法——转义序列来解决。
(见P26表2-2)
Exa2-6:
转义序列(程序使用振铃字符来提请注意,使用换行符使光标前进,使用退格字符使光标向左退一格)
\aOperation\"
HyperHype\"
isnowactivated!
\n"
Enteryouragentcode:
____\b\b\b\b"
intcode;
code;
\aYouentered"
code<
...\n"
\aCodeverified!
ProceedwithPlanz3!
提示:
在可以使用数字转义序列或符号转义序列(如\07和\a)时,应使用符号序列。
数字表示与特定的编码方式(如ASCⅡ码)相关,而符号表示适用于任何编码方式,其可读性也更强。
练习4:
调试、修改Exa2-6,理解转义序列。
4.字符串常量
用双引号括起来的字符序列。
注意与字符常量的区别。
(1)定界符不同;
(2)字符数不同;
(3)存储方式不同,比如’a’分配一个字节,”a”含两个字符,字母a和结尾标记字符\0,分配两个字节。
5.布尔常量
两个:
true(真)和false(假)。
2.2.3变量
(1)变量提供了程序可以操作的有名字的存储区。
C++中的每个变量都有特定的类型,该类型决定了变量的内存大小和布局、能够存储于该内存中的值的取值范围以及可应用在该变量上的操作。
C++程序员常常把变量称为“变量”或“对象(object)”。
(术语:
什么是对象?
对象是内存中具有类型的区域。
)
(2)变量的使用规则:
先定义,再使用,使用之前变量中必须有值。
定义时可初始化。
C++变量名的命名规则:
(变量名即变量的标识符:
identifier)
●在名称中只能使用字母、数字和下划线(-)。
●名称的第一个字符不能是数字。
●区分大小写字符。
●不能将C++关键字用作名称。
(课本P22)
●不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母,(C++标准保留了一组标识符用于标准库),最好不要以下划线开头。
(3)建议:
变量名命名习惯
变量命名有许多被普遍接受的习惯,遵循这些习惯可以提高程序的可读性。
命名习惯最重要的是保持一致。
●变量名一般用小写字母。
例如,通常会写成index,而不写成Index或INDEX。
●变量名应有一定的含义、容易记忆,如表示差旅费可命名为cost_of_trip或costOfTrip,而不是x,y。
●包含多个词的变量名书写为每个词之间添加一个下划线,或者每个内嵌的词的首字母都大写。
如cost_of_trip或costOfTrip。
2.2.4运算符与表达式
1.自增(++)和自减(--)操作符
(1)两个运算符都有前置或后置两种使用形式,如i++,++i,i--,--i,单独作为一条语句时,如for循环中作为循环控制变量,前置、后置作用相同,都是将操作数的值加1(减1)后,重新写回该操作数在内存中位置。
建议:
只有在必要时才使用后置操作符。
因为前置操作需要做的工作更少,只需加1后返回加1的结果即可。
而后置操作符必须先保存操作数原来的值,以便返回未加1之前的值作为操作的结果。
(2)出现在其他操作中,作用不同。
inti=2,j;
j=i++;
//先将i的值2赋给j,j=2,然后i加1,i=3
j="
j<
i="
i<
j=++i;
j=--i;
j=i--;
结合内存结构图理解。
2.组合赋值操作符
表2-2组合赋值操作符
操作符
作用
+=
将L+R赋给L
/=
将L/R赋给L
-=
将L-R赋给L
%=
将L%R赋给L
*=
将L*R赋给L
注:
L表示左操作数;
R表示右操作数。
s=s+2;
等价于s+=2;
课堂练习:
2-17;
2-21;
2-22
作业:
2-2;
2-3;
2-5;
2-7;
2-9;
2-10;
2-25