c++知识复习4.0

来源:互联网 发布:android 调用js 编辑:程序博客网 时间:2024/06/03 18:52

2.4 常量
常量是在程序中不能被改变的量。
常量有各种不同的数据类型,不同数据类型的常量由它的表示方法决定,常量被存储在不能被修改的匿名变量中,常量或常量符号可出现在表达式中。
下面介绍各种不同数据类型常量的表示方法。
1、整型常量
整型常量可以用十进制、八进制和十六进制来表示。
(1)十进制整型常量由0至9的数字组成,没有前缀,不能以0开始,没有小数部分。有正负之分。例如:234,-76等
(2)八进制整型常量,以0为前缀,其后由0到7的数字组成,没有小数部分,不能带符号。例如:0357,072等。
(3)十六进制整型常量,用0x或0X为前缀,其后由0到9的数字和A到F(大小写均可)字母组成,没有小数部分,不能带符号。例如:0x7A,0x8ef等。
整型常量中的长整型用L(或l)做后缀表示。例如,32786L。
整型常量中的无符号型用U(或u)做后缀表示。例如,4365U。
整型常量后缀可以是U和L(u或l)的组合,表示unsigned ling 类型的常量。
2、浮点型常量
浮点型常量是由整数部分和小数部分组成的,只有十进制表示。
浮点型常量有两种表示方式:一种是小数表示法,它由整数部分和小数部分组成的。这两部分可省去一部分,但不能都省去。如:5. ,.32 ,0.0,13.54等。另一种方法是科学表是法,他常用来表示很大或很小的数,表示方法是在小数表示法后加e(E)及指数部分。但要注意,e(E)前面必须有数字,指数部分可正可负,但都是整数。例如,3.2E-5,5.8E10,3e6等。
与整型常量一样,可以定义float和double型两种变量。在默认情况下,实型常量都为double型,如果要定义float型变量,则必须在实数后加f(F)。表示long double 则必须在实数后加l(L)。例如:
3.2f //float
3.2e2f //float
12.0e-4 //double
76.4L //long double
实型常数分为单精度(float)、双精度(double)和长双精度(long double)3类。一般float型占4个字节,提供7位有效数字。double型占8个字节,提供15位有效数字。long double型占10个字节,提供19位有效数字。
3、字符常量
字符常量是用单括号括起来的一个字符。
有两种表示方法,一种是用该字符的图形符号,如’a’ ,’x’,’*’,’1’,’A’。另外还可以用字符的ASCII码表示,即用反斜符(/)开头,后跟字符的ASCII码,这种方法也称为转义序列表示法,具体方法是:
有两种形式:一种是用字符的八进制ASCII码,表示为:
/ddd
这里,ddd是八进制值。另一种使用字符的十六进制ASCII码值,表示为
/xhh
这里hh是两位十六进制值。如:’A’ ,’/101’ 和 ‘x41’都表示同一个字符常量。
转义序列表示法还可以用来表示一些特殊字符,用来显示特殊符号或控制输出格式。下面是常用的特殊转义字符。
字符形式
ASCII值
功 能
/a
0x07
响铃
/n
0x0a
换行
/t
0x09
制表符(横向)

0x0b
竖向跳格
/v
0x0b
竖向跳格
/b
0x08
退格
/r
0x0d
回车
//
0x5c
字符/
/”
0x22
字符”
/’
0x27
字符’
/ddd

可表示任意字符
/xhh

可表示任意字符

注意:特殊转义字符必须是小写字母。
4、字符串常量
字符串常量一对双括号括起来的字符序列。例如:
“How are you?”
“ABCD/n”
“a”
“/tabc/txyz!/
mnp/tefg!”
都是字符串。在最后一个字符串中的反斜线是续行符,它表示下面一行的字符与上面是同一行的。使用续行符可使一行写不下的文本写在下一行中。在使用续行符时系统会忽略续行符本身以及其后的换行符。在字符串中出现反斜线时应该用转义字符//表示。
字符串中可以出现空格符、转义序列或其他字符,也可以包含C++以外的字符,如汉字等,只要编译器支持汉字系统就行。
关于字符常量与字符串常量的区别。
(1)字符串是用一个一维字符数组来存放的,而字符常量可用一个字符型变量存放。例如:
char ch;
ch=’a’; 正确
ch=”a”;错误
(2)字符型常量用单引号括起,而串常量用双引号括起。
(3)一个字符常量被存放在内存中只占一个字节,而串常量要占多个字节。例如: ‘a’仅占一个字节,用来存放字符a的ASCII码;而”a”却占两个字节,除了用一个字节存放字符’a’的ASCII码外,还有一个字节存放字符串常量的结束符’/0’,这里的’/0’表示空字符的转义序列。要记住,在C++中,凡是字符串都有一个结束符,该结束符用’/0’表示。
(4)字符常量与字符串常量的操作功能也不相同。例如,字符常量具有加法和减法运算,而字符串常量不具有这种运算。例如:
‘p’-‘m’+1
这是合法的。
“p”-“m”+1
是非法的。
字符串常量有连接、拷贝等功能,在本书的后面进行讲解。
5、枚举常量
枚举常量是枚举类型的值。这种类型一般不常用,在此仅做简单介绍。
学过高级语言的都知道:除了系统预定义的数据类型之外,其他数据类型都要先定义才能使用。枚举类型也是这样,必须先定义,后使用。枚举类型的定义如下:
enum 〈类型名〉 {枚举类型常量表};
其中,enum是关键字,类型名和枚举类型常量都是标识符。
例如:enum day {sun,mon,tue,wed,thu,fri,sat};
默认情况下每个枚举类型常量都对应一个整型序号,第一个常量的序号为0,其后的值依次加1。另外在枚举类型定义时还可显式给枚举类型常量赋值,但必须是整型。例如:
enum day {sun=7,mon=1,tue,wed,thu,fri,sat};
下面定义三个枚举类型变量。
enum day d1,d2,d3;
这里d1,d2,d3只能赋值sun,mon,tue,wed,thu,fri,sat中之一。例如:
d1=tue;d2=sun;d3=d1;
而不能赋值为整型常量,例如,下面赋值是错误的。
d1=3;d2=7;
如果要把序号3对应的常量赋值给枚举类型变量,必须进行强制类型转换。例如:
d3=(enum day )3;
6、符号常量(常量定义)
在C++中的常量常用符号常量来表示,即用一个与常量相关的标识符来代替常量出现在程序中,这种相关的标识符称为符号常量。例如用pi表示圆周率3.1415926,在程序用用到圆周率时就用pi代替。符号常量定义方法如下:
const 〈类型〉〈符号常量〉=〈表达式〉;
如:const float pi=3.1415926;
注意:常量标识符在程序中只能被引用,而不能被重新赋值。既不能出现在表达式的右边。

2.5 变量
变量是在程序执行中其值是可以变化的量。变量有三个要素:名字、类型和值。
1、变量的名字
变量的名字是一个标识符,在组成的变量名字中大小写是不同的。c++虽然未对变量名的长度进行控制,但它受使用的编译系统的制约。一般情况下,变量名用小写字母。注意定义的变量名不要与关键字、库函数名、类名和对象名相同。
2、变量的类型
变量在使用前必须先定义,指出其数据类型。通过类型定义,变量被分配固定的存储空间,直到程序结束时存储空间被释放。变量的操作受类型控制,如整型变量与浮点型变量的操作是不同的。
3、变量的值
与变量有关的有两个值:一个是变量所表示的数据值,另一个是变量的地址值。例如:
char c;
c=’a’;
其中,第一个语句是定义一个变量,其名字为c,其类型为字符型。第二个语句是给变量c赋值,使变量所表示的数据值为’a’,该值便是存放在变量c的内存地址中的值,实际上内存中存放的是字符a的ASCII码值,以整数表示,所以c++中整型数据和字符型数据之间可以相互赋值,但要注意其表示的合理范围。例如:下面赋值操作是正确的。
int a=’x’;
char ch=41;
变量c被定义以后,它就在内存中对应着一个内存地址值,在c++中许多操作是针对变量的地址进行的,在指针类型一章将详细介绍。

0 0