C++学习:2.3计算机中的常量和变量

本文介绍了C++中的常量(包括字面常量、整型、浮点型、字符和字符串常量,以及符号常量),强调了变量的定义、赋值和const限定的重要性。同时提及了编译时对常量修改的检查机制,体现了现代软件开发的设计原则。
摘要由CSDN通过智能技术生成

一、常量

常量(constant)是指程序中其值不能被修改的数据。分为字面常量和符号常量。

从字面形式即可识别的常量称为字面常量(literal constant),例如64、3.1415926和'A'等。

每个字面常量都具有数据类型,由它的书写形式和值来决定。(程序代码中肯定有很多数据,有些数据含义确定,例如代码中写个a=1或者b=`fish`,这里的1和`fish`就是常量,同时我们从字面上就知道它的数据类型和含义,也叫做字面常量。因此这里的常量和变量实际上主要是书写规范层面而言)

 

1.整型常量

(1)十进制整数。

以非零十进制数1~9组成的整数,例如13579,-680等。

(2)八进制整数。

以0开头和八进制数0~7组成的整数,例如012,0177等。

(3)十六进制整数。

以0x或0X开头和十六进制数0~9、A~F或a~f组成的整数(字母大小写任意),例如0x1234,0xab,0xCF等(16进制数据表示不区分字母大小写)。

2.浮点型常量

(1)小数形式。由小数点、十进制整数和小数组成的浮点数。整数和小数可以省略其中之一,但不能省略小数点。

如:.123.0、123.、0.0等。

(2)指数形式,又称科学记数法表示。以f En或f e n格式组成的浮点数,

中E或e表示以10为底的幂,f可以是整数或小数,n为指数且必须是整型。如:0.31415926e+1、314.15926E-2等。

浮点型常量默认为double型。若在浮点数后面加一个字母f或F,则它是float型。

3.字符常量

以一对单引号(')括起来的一个字符表示字符常量,如:'A'、'0'、'&'、 'ab’错误!“

字符常量表示的是一个字符,存储的是该字符的ASCII码值。例如'A'表示

符A,数据值是65;‘2'表示数字字符2,数据值是50。

注意区别字符'2'和整数2的写法。

4.用转义字符表示字符常量

以反斜线(\)开头,后跟一个或几个字符序列表示的字符称为转义字符,如\n表示换行符(注意,这个整体是一个字符)。

采用转义字符可以表示ASCII字符集中不可打印或不方便输入的控制字符和其他特定功能的字符(例如有些字符键盘上没有,我们可以通过转义字符的方式代替)。

例如\t为水平制表符,实际上电脑屏幕被分为一些制表区,每8列为一个制表区,每次输入\t,光标就会跳到下一个制表区起始列,要注意的是输入一次\t,是每步跳一个空格,最多跳8步,也就是从当前制表区所在列,一步一步的跳到下一个制表区的起始列。

由于每个字符都有一个确定的ASCII码,肯定都可以用\ooo或\xhh表示,因此,\ooo和\xhh称为通用转义字符,其中ooo表示可以用1至3位八进制数作为码值表示一个ASCII字符,hh表示可以用1至2位十六进制数作为码值表示ASCII字符。

如:“\1234"一“\123和4”,"\128"一“\12和8","\19"一“\1和9

\9错误!,\OxFE错误!

由于字符型数据在内存中只占用1个字节,即使按无符号处理其最大值也仅是255(八进制为377),因此ooo的数值范围为0~377 (八进制),其他值使得字符型数据溢出。同理,hh的数值范围为0~FF。(换言之,ASCII字符对应的整数数值有上限,\后面的八进制或者十六进制数值对应的也有上限)。

5.字符串常量

以一对双引号(“")括起来的零个或多个字符组成的字符序列称为字符串常量,ASCII字符集或多字节字符集(如汉字、日韩文字等)都可以组成字符串。双引号是字符串常量的边界符,不是字符串的一部分,如果在字符串中要出现双引号应使用转义字符(\") 。

6.符号常量

符号常量定义形式为: #define标识符常量

其中#define是宏定义命令(预处理命令),作用是将标识符定义为常量值,在程序中所有出现该标识符的地方均用常量替换。对于那些含义清晰明确,并且编程中要经常用到的数据量最好把它设置为符号常量。例:#define PRICE 30。具体见下面的例子:

Example.cpp

#include <iostream>

using namespace std;

#define PI 3.1415926 //3.1415926即为圆周率T

int main()

{

double r = 5.0;

cout << "L=" << 2 * PI*r << ",S=" << PI*r*r << endl; //PI为3.1415926

return 0;

}

二、变量

在程序运行期间其值可以改变的量称为变量(variable) 。

变量实际上就是计算机中的一个内存单元。

C++语言规定变量应该有一个名字,用变量名代表内存单元。

C++语言通过定义变量时指定其数据类型来确定内存单元的大小。不同的数据类型有不同的数据形式和存储形式,需要一定数量(单位为字节))的内存单元。

1.变量的定义

C++语言变量必须"先定义,后使用”,定义变量的一般形式是:

变量定义后,变量值是未确定的(除了静态存储情形),即变量值是随机的。直接使用此时的变量参与运算,运算结果也是随机的。C++允许在变量定义的同时给变量一个初值,称为变量初始化( initialized) ,一般形式为:

2.变量的赋值

定义变量后,可以通过赋值语句为变量赋予新的数据,一般形式为:

赋值后,无论变量原来的值是多少,都将被新值替代。

3.变量的const限定

在变量定义前加上const修饰,这样的变量称为只读变量(read-only variable)或常变量(constant variable)。它在程序运行期间的值不能被修改。其定义的一般形式为:

场变量只有在初始的时候给它一个值,因为它在后面不能被重新赋值了。因此定义场变量的时候不给它初始化是不允许的。

const限定过的变量在编译过程中若发现有修改的操作时会报编译错误,从而"阻止"对变量的修改。使用const限定强制实现对象最低访问权限,是现代软件开发的设计原则之一。见下面的案例:

这里主函数调用root子函数后,将a, b传入到root函数中,而root函数中将接受的参数修饰为常变量,这样的话在root函数的内部,a, b不能被修改。

Example.cpp

#include <iostream> //标准输入输出函数库

#include <cmath>    //数学函数库

using namespace std;

double root(const double x, const double y)  // root函数求x - y的平方根

{

if (x>= y) return sqrt(x - y);  //只有在x大于等于y时计算x - y的平方根

else return 0;          // 否则返回0



}

int main()     // 主函数

{ double a, b;   // 定义两个浮点型变量

  cin >> a >> b; // 输入两个数

cout << root(a, b) << endl; // 输出a - b的平方根

return 0; // 主函数正常结束返回0

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

冬生亦东生

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值