C语言学习&C程序设计——常量(详解)

今天我们来看看常量的详细介绍。

常量是指程序中其值不可更改的数据,分为字面常量符号常量

字面常量:从字面形式即可识别的常量。
例如:64、3.1415926、A、B等等。
每个字面常量都有自己的数据类型,由它的书写格式和值来决定。
符号常量:为了编程和阅读方便,C程序中常用一个符号名称代表一个常量,称为符号常量,即以标识符形式出现的常量。
·····································································································
·····································································································

字面常量

整型常量

一个整型常量的三种表示方法:
  1. 十进制整数
  2. 八进制整数
  3. 十六进制整数
例如整数22可以写成以下形式:
22——十进制
026——八进制
0x16——十六进制
整型常量在字面上区分数据类型的办法:
  1. 整型数据默认为int型。
  2. 一个整型数值在-32768——32767之间,则它是short型。
  3. 一个整型数值不在short型范围内,但在-2147483648——2147483647之间,则它是long型。
  4. 在一个整型数值后面添加一个字母L或l,表示该数值为long型。(注意字母l和数字1不要混淆,一般用大写L)
  5. 整型数据一般默认为是signed型。
  6. 整型数据数值在后面添加一个字母U或u,表示该数值为unsigned型。

例如:

165               //signed int
168               //signed int
168U              //unsigned int
1111111111        //signed long
-25L              //signed long
65535Lu           //unsigned long

·····································································································

浮点型常量

浮点型常量的表示方法:
  1. 小数形式
  2. 指数形式(科学计数法表示)

小数形式
1.由小数点、整数部分和小数部分组成.
例如:

1.234-54152.62

2.整数和小数可以省略其中一个,但不能省略小数点。
例如:

.2112.0.0

指数形式
f Enfen格式组成的浮点数,其中E或e表示以10为底的幂,n表示指数且必须是整型数,f可以是整数或小数。
例如:

小数3.124528156可以写成以下任意一种形式:
3.124528156                            //小数形式
0.3124528156e+1,312.4528156E-2         //指数形式

浮点型常量默认为时double型。若在浮点数后面加一个字母f或F,则它是float型。若在浮点数后面加一个字母l或L,则表示它是long double型。
例如:

3.124528156       //double型
3.124528156L      //long double型
3.124528156f      //float型

·····································································································

字符常量

一个字符常量有三种不同的表示方法。

用字面常量表示字符常量

以一对单引号(’ ')括起来的一个字符表示字符常量。
例如:

'B''0''#'等等。

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

'B'表示为英文字符B,数据值是66.
'3'表示为数字字符3,数据值是51.

单引号是字符常量的边界符,它只能包括一个字符。

注意:字符’2’和数字2是有区别的。前者为字符常量,后者为整型常量。二者的存储方式和含义是不同的。

使用转义字符表示字符常量

以反斜线(\)开头,后跟一个或几个字符序列表示的字符称为转义字符

转义字符中的字符序列已经被替换为另外的含义,故称为转义。

使用转义字符可以表示ASCII字符集中不可打印或不方便输入的控制字符和其他特定功能的字符。

以下是部分转义字符及其含义:

在这里插入图片描述
注意由于字符型数据在内存中只占用1个字节,即使按无符号处理,其最大值也仅仅是255(八进制数为377)。

用ASCII码值表示字符常量

前面提到字符型数据和整型数据之间是相通的,因此可以使用字符的码值(一个整型数据)来表示字符。
例如:

使用十进制数65(或者八进制数0101,十六进制数0x41)表示大写字母'A'

使用整型数据表示字符的优点是让字符也能做算数运算,缺点是丢失了数据的字符特性,从字符的角度来看不直观。

字符串常量

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

字符串常量与字符常量的不同点

  1. 边界符不同
    字符串常量的边界符是双引号;字符常量的边界符是单引号。
  2. 字符数不同
    字符串常量的字符数量可以是零个或多个;字符常量的字符数量仅是1个。
  3. 在内存中的存储形式不同
    字符常量固定地占用1个字节;字符串常量至少占用1个字节。
    C语言会在每个字符串常量后面自动添加一个\0字符(空字符)作为字符串结尾标记,因此零长度的字符串至少包含一个空字符(占用1个字节),包含n个字符的字符串占用n+1个字节。

符号常量

为了编程和阅读的方便,C程序中常用一个符号名称表示一个常量,称为符号常量,即以标识符形式出现的常量。
而标识符常量的本质是C语言中的预处理命令,其定义形式是:

#define 标识符 常量

其中#define是宏定义命令,作用是将标识符定义为常量值,在程序中所以出现该标识符的地方均用常量替换。

符号常量不是变量,一经定义,它所代表的常量值在其作用域中不能改变,也不能对其赋值。

符号变量名要符合标识符的命名规则,一般用大写英文字母表示,使之以与变量名等其他标识符有明显的区分。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

破镜重圆,终有裂痕170

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

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

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

打赏作者

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

抵扣说明:

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

余额充值