C++中的常量的基础知识

常量:指在程序执行过程中值不改变的量。常量有两种表示形式,即字面常量和符号常量。字面常量的类型是根据书写形式来区分的,例如15,-2.2,'a',"hello"等都是字面常量,它们的类型分别为:整型、浮点型、字符型、字符串型,每个字面常量的字面本身就是它的值。符号常量是一个标识符,在程序中必须遵循“先声明,后使用”的原则。

》逻辑常量

逻辑类型的取值只包含两个取值:true和false,它们称为逻辑常量。

bool b=(x==y);

如果x与y相等,则b的值为true;否则b的值为false。逻辑常量主要用在逻辑运算中。此外,由于逻辑值对应着整数1或0,所以它也能够像其他整数一样出现在表达式中,参与各种整数运算。


》字符常量

简称字符,它以单引号作为起止符号,中间有一个或若干个字符。

例       ‘a’ 单引号中间有一个字符,这是一般意义上的字符常量;

           ‘\n’,'\146','\x6E'等以“\”开头的包括多个字符的字符序列也都是符合规定的字符常量。

但是,无论字符常量包含一个还是多个字符,每个字符常量只能表示一个字符,当字符常量的一对单引号内多于一个字符时,则将按照一定的规则解释为一个字符。


》转义字符

计算机中常用的ASCII字符也是字符型的数据,因为ASCII码值在0~127之间,正好落在字符型数据的取值范围之内。ASCII字符集中的每一个可显示字符(个别字符除外)都可以作为一个字符常量。但是,对于一些特殊的字符,如回车、换行等具有控制功能的字符,或者像单引号、双引号等作为特殊标记使用的字符,就无法直接采用单引号作为起止字符来表示。为了表示这些特殊字符,C++中引入了“转义”字符的概念,其含义是:用反斜线“\”引导的下一个字符失去了原来的含义,而转义为具有某种控制功能的字符。

例:“\n” 中的字符n通过反斜线的转义后就称为一个换行符,其ASCII码为10。为了表示作为特殊标记使用的可显示字符,也需要用反斜线字符引导,例如,“\‘”表示单引号字符,若直接使用“ ' ”表示单引号是不行的。

另外,还允许用反斜线引导一个具有1~3位八进制整数或一个以字母x(大小写均可)作为开始标记的具有1~2位的十六进制数,对应的字符就是以这个整数作为ASCII码的字符。

由反斜线字符引导的符合上面规定的字符序列称为转义序列,转义序列不但可以作为字符常量,也可以同其他字符一样出现在字符串中。

一个字符用于显示输出时,将输出字符本身或体现出相应的控制功能;当它在表达式中参加整数运算时,将使用它的ASCII码值。


》整型常量

整型常量就是整型常数,简称整数,它有十进制、八进制和十六进制三种表示方式。C++中的整型数据除了一般的表示方法之外,还允许给它们添加后缀u或l。对于任一种进制的整数,若后缀为字母u(不区分大小写),则规定它为一个无符号整型(unsigned int)数,若后缀为字母L(不区分大小写),则规定它为一个长整型(long int)数。在一个数的末尾,可以同时使用u和L,并且对排列无要求。

例:15U (unsigned int)     0123U (unsigned long int)       0X1abcL (long int)     1234LU (unsigned long int)

    >十进制整数

       十进制整数以正号(+)或负号(-)开头,由首位非0的一串十进制数字组成。若以正号开头则为正数,若以负号开头则为负数,若省略正负号,则默认为整数。

       整数在计算机中是有表示范围的,因此一个整数在程序中使用时会受到大小的限制。当一个十进制整数大于等于-2 147 483 648(-2^31),

       同时小于等于2 147 483 648(2^31-1)时,系统将其看做是整型常量;当在 2 147 483 648~4 294 967 295即2^32-1范围之内时,则被看做是无符号整型常量;当超过上述两个范围时,则无法用C++整数类型表示,只有把它用实数(即带小数点的数)表示才能够被有效的存储和处理。


     >八进制整数

       八进制数整数以数字0开头,后面接若干个八进制数字(借用十进制数字中的0~7)。八进制整数前面不带正负号,全部默认为整数。

       当一个八进制数大于等于0同时小于等于017 777 777 777时,称为整型常量;当大于等于020 000 000 000同时小于等于037 777 777 777时,称为无符号整型常量。不要使用超过上述两个范围的八进制整数,因为没有与此相对应的C++整数类型。


     >十六进制整数

      十六进制整数以数字0和字母x(不区分大小写)开头,后面接若干个十六进制数字(借用十进制数字0~9,字母A~F或a~f)。同八进制整数一样,十六进制整数也全部为正数。

      当一个十六进制整数大于等于0同时小于等于0x7FFFFFFF时,称为整型常量;当大于等于0x80000000同时小于等于0xFFFFFFFF时,称为无符号整型常量。超过上述两个范围的十六进制整数也没有与之相对应的C++整数类型,所以也不能使用它们。


》实型常量

实型常量简称实数,对应着数学中的实数概念。实型常量有十进制的定点表示和浮点表示两种方法。

       >定点表示

       定点表示的实数简称定点数,即以小数形式表示实数。定点表示的实数由一个正好或负号(正号可以省略)后接若干个十进制数字和小数点组成,这个小数点可以处在任何一个数字位的前面或后面。

       >浮点表示

       浮点表示的实数简称浮点数,即以小数形式表示实数。浮点表示的实数由一个十进制整数或定点数后接一个字母E(大小写均可)和1~3位的十进制整数组成,字母E之前的部分称为该浮点数的尾数,之后的部分称为该浮点数的指数,该浮点数的值就是它的尾数乘以10的指数幂。

       对于一个浮点数,若将它尾数中的小数点调整到最左边第一个非零数字的后面,则称它为规格化(或标准化)浮点数,这有些类似于数学中的科学记数法。例如41.6E8是非规格化的,4.16E9则是规格化的浮点数。

       实型常量分为单精度(float)、双精度(double)和长双精度(long double)三类。一般float型数据在内存中占4个字节,提供7位有效数字;double型数据占8个字节,提供15位有效数字;long double型数据占10个自己,提供19位有效数字。对于一个定点数或浮点数,C++自动按一个双精度(double型)来存储。若在一个定点数或浮点数之后加上字母F(大小写均可),则自动按一个单精度数来存储。


》枚举常量

        枚举常量是枚举类型中定义的值,即枚举值。枚举类型属于用户定义类型,用关键字enum表示,因此又称为enum类型。用户通常利用枚举类型定义程序中需要使用的一组相关符号常量。声明枚举类型的语法格式为:

enum<类型名>{<枚举值表>};

其中,enum是关键字,指出要定义的是枚举类型。<类型名>是标识符,即由用户给出的具体枚举类型名。<枚举值表>包含多个枚举值,它们用逗号分隔开,每个枚举值就是一个枚举常量。枚举值有两种定义形式:一是<值名>,而是<值名>=<整型常量>。

enum color{RED=1,YELLOW,BLUE};

关于enum类型有四点说明:

      >一个enum类型实际上是int类型的一个子集,其每一个枚举值代表一个整数。

      >n个枚举值全部未赋常量值时,它们自左至右分别与整数0,1,...,n-1对应。

      >若第i个枚举值赋常量值为m,则其未赋值常量的后续枚举值分别与整数m+1,m+2,...对应,直到下一个赋了值的枚举值或结束。因此,为枚举值所赋的整型常量值应从左至右递增。在上面的例子中,YELLOW与整数2对应,BLUE与整数3对应。

      >枚举类型的声明也可作为成组声明若干整型符号常量的方法。也就是说,把每个要声明的符号常量作为一个枚举值,将各个枚举值合在一起定义成一个枚举类型。

由于枚举类型属于用户定义数据类型,一旦枚举类型被定以后就可以使用它来定义变量,

例如:enum color c1,c2,c3;

其中关键字enum可以省略,color是已经定义的枚举类型,变量c1,c2,c3的取值可以是枚举值RED,YELLOW,BLUE中的任意一个。


》符号常量声明语句

        符号常量在使用之前必须先进行定义。符号常量定义语句同变量定义语句类似,其语法格式为:

        const<类型名><符号常量名>=<初值表达式>,...;

        其中关键字const指明这是一条符号常量定义语句,后面跟着符号常量的类型名,接着是符号常量名,它是一个用户定义的标识符,符号常量名之后为一个赋值号和一个初值表达式。注意,必须在声明符号常量的同时为其显示赋初值。该语句也可以定义多个符号常量。

        系统执行符号常量定义语句时,需要依次为每个符号常量非配存储单元并赋初值。一个符号常量定以后,它的值就是定义时所赋予的初值,作为常量,这个值以后将始终保持不变,因为系统只允许读取它的值,而不允许再次向它赋值。在符号常量定义语句中,若<类型名>为int,则int可以省略。

        C++关键字中的true和false就是系统预先定义的两个符号常量,它们的值分别为1和0。使用符号常量往往可以提高程序的可读性和可维护性。由于符号常量和变量同样要求系统为其分配内存单元,所以可以把符号常量视为一种不允许赋值改变的或只读不写的变量称其为const变量。

源码来自:https://pan.quark.cn/s/a4b39357ea24 ### 操作指南:洗衣机使用方法详解#### 1. 启动与水量设定- **使用方法**:使用者须首先按下洗衣设备上的“启动”按键,同时依据衣物数量设定相应的“水量选择”旋钮(高、中或低水量)。这一步骤是洗衣机运行程序的开端。- **运作机制**:一旦“启动”按键被触发,洗衣设备内部的控制系统便会启动,通过感应器识别水量选择旋钮的位置,进而确定所需的水量高度。- **技术执行**:在当代洗衣设备中,这一流程一般由微处理器掌管,借助电磁阀调控进水量,直至达到指定的高度。#### 2. 进水过程- **使用说明**:启动后,洗衣设备开始进水,直至达到所选的水位(高、中或低)。- **技术参数**:水量的监测通常采用浮子式水量控制器或压力感应器来实现。当水位达到预定值时,进水阀会自动关闭,停止进水。- **使用提醒**:务确保水龙头已开启,并检查水管连接是否牢固,以防止漏水。#### 3. 清洗过程- **使用步骤**:2秒后,洗衣设备进入清洗环节。在此期间,滚筒会执行一系列正转和反转的动作: - 正转25秒 - 暂停3秒 - 反转25秒 - 再次暂停3秒- **重复次数**:这一系列动作将重复执行5次,总耗时为280秒。- **技术关键**:清洗环节通过电机驱动滚筒旋转,利用水流冲击力和洗衣液的化学效果,清除衣物上的污垢。#### 4. 排水与甩干- **使用步骤**:清洗结束后,洗衣设备会自动进行排水,将污水排出,然后进入甩干阶段,甩干时间为30秒。- **技术应用**:排水是通过泵将水抽出洗衣设备;甩干则是通过高速旋转滚筒,利用离心力去除衣物上的水分。- **使用提醒**:...
代码下载地址: https://pan.quark.cn/s/c289368a8f5c 在安卓应用开发领域,构建一个高效且用户友好的聊天系统是一项核心任务。 为了协助开发者们迅速达成这一目标,本文将分析几种常见的安卓聊天框架,并深入说明它们的功能特性、应用方法及主要优势。 1. **环信(Easemob)** 环信是一个专为移动应用打造的即时通讯软件开发套件,涵盖了文本、图片、语音、视频等多种消息形式。 通过整合环信SDK,开发者能够迅速构建自身的聊天平台。 环信支持消息内容的个性化定制,能够应对各种复杂的应用场景,并提供多样的API接口供开发者使用。 2. **融云(RongCloud)** 融云作为国内领先的IM云服务企业,提供了全面的聊天解决方案,包括一对一交流、多人群聊、聊天空间等。 融云的突出之处在于其稳定运行和高并发处理性能,以及功能完备的后台管理工具,便于开发者执行用户管理、消息发布等操作。 再者,融云支持多种消息格式,如位置信息、文件传输、表情符号等,显著增强了用户聊天体验。 3. **Firebase Cloud Messaging(FCM)** FCM由Google提供的云端消息传递服务,可达成安卓设备与服务器之间的即时数据交换。 虽然FCM主要应用于消息推送,但配合Firebase Realtime Database或Firestore数据库,开发者可以开发基础的聊天软件。 FCM的显著优势在于其全球性的推送网络,保障了消息能够及时且精确地传输至用户。 4. **JMessage(极光推送)** 极光推送是一款提供消息发布服务的软件开发工具包,同时具备基础的即时通讯能力。 除了常规的文字、图片信息外,极光推送还支持个性化消息,使得开发者能够实现更为复杂的聊天功能。 此...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值