C++编程学习(第四天)

 常量

常量的值是不能改变的,常量包括两类:数值型常量和字符型常量。

数值型常量
整型常量

十进制整数,在一个整常量后面加一个字母l或L,则认为是long int型常量。

八进制整数,在常数的开头加一个数字0。

十六进制整数,在常数的开头加一个数字0和一个英文字母x或X。

浮点型常量

十进制小数形式,一般由整数部分和小数部分组成,可以省略其中之一,但不能二者皆省略。

C++系统把这种形式表示的浮点数一律按双精度常量处理,在内存中占8个字节。如果在实数的数字之后加字母F或f,表示此数为单精度浮点数,占4个字节。如果加上L或l,表示此数为长双精度数,在GCC中占12个字节,在Visual C++中占8个字节。

指数形式,一般形式为  数符 数字部分 指数部分,以字母e表示其后的数是以10为底的幂。

字符常量
普通字符常量

普通字符常量,用单撇号括起来的一个字符就是字符常量,在内存中占一个字节,字符常量只包含一个字符,区分大小写,撇号是定界符,不属于字符常量的一部分。

转义字符常量

转义字符常量,以'\'开头的字符序列,如'\n'表示换行,这种控制字符在屏幕上是不能显示的,在程序中也无法用一个一般形式的字符表示,只能采用特殊形式来表示。

转义字符及其含义
字符形式含义ASCII码
\a响铃7
\n换行,将当前额外i之移动到下一行开头10
\t水平制表(跳转到下一个tab位置)9
\b退格,将当前位置移动到前一列8
\r回车,将当前位置移动到本行开头13
\f换页,将当前位置移动到下页开头12
\v竖向跳格8
\\反斜杠字符'\'92
\'单撇号字符39
\"双引号字符34
\0空字符0
\ddd1-3位八进制的数所代表的字符
\xhh1-2位十六进制数所代表的字符
字符数据在内存中的存储形式及其使用方法

将一个字符常量存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的ASCII码放到存储单元中。如果字符变量c1的值为'a',c2的值为'b',则在变量中存放的是'a'的ASCII码97,'b'的ASCII码98,实际上在内存中是以二进制形式存放的。既然字符数据以ASCII码存储的,它的存储形式就与整数的存储形式类似,这样在C++中字符型数据和整型数据之间就可以通用。

一个字符数据可以赋给一个整型变量,反之,一个整型数据也可以赋给一个字符变量。也可以对字符数据进行算术计算,此时相当于对它们的ASCII码进行算术计算。

#include <iostream>
using namespace std;

int main()
{
	int i, j;	//定义整型变量
	i = 'a';	//对变量i进行赋值,值为字符常量
	j = 'b';	//对变量j进行赋值,值为字符常量
	cout << i << ' ' << j << endl;
	return 0;
}

结果如下:

需要注意,字符数据只占1字节,只能存放0-255内的整数。 

应用实例:将小写字母转化成大写字母

#include <iostream>
using namespace std;

int main()
{
	char c1, c2, c3, c4;    //定义字符变量
	c1 = 'a';                //赋值,a的ASCII码为97
	c2 = 'b';                //赋值,b的ASCII码为98
	c3 = c1 - 32;            //实际是ASCII码的计算,大小写字母之间相差32
	c4 = c2 - 32;            //实际是ASCII码的计算,大小写字母之间相差32
	cout << c3 << ' ' << c4 << endl;
	return 0;
}

结果如下:

字符串常量

用双撇号括起来的字符就是字符串常量。编译系统会在字符串常量后自动加一个'\0'作为字符串结束标志。

注意,'\0'并不是字符串的一部分,它只作为字符串的结束标志,会占用一个字节。

符号常量

为了编程和阅读的方便,可以用一个符号名代表一个常量,称为符号常量,即以标识符形式出现的常量。符号常量虽然有名字,但是它不是变量,在进行编译预处理时,所有的符号常量都会被置换为具体的数值。

符号常量是在C程序中用的较多,在C++程序中常用常变量而较少用符号常量。

#include <iostream>
using namespace std;
#define PRICE 50            //定义符号常量,没有等号,末尾无分号

int main()
{
	int num, total;
	num = 30;
	total = num * PRICE;    //乘法运算
	cout << "total = " << total << endl;
	return 0;
}

结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武当豆豆

为国家GDP快速增长做贡献

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值