当前课程知识点:C语言程序设计 >  第3章 基本数据类型、运算符与表达式 >  3.2 常量 >  常量

返回《C语言程序设计》慕课在线视频课程列表

常量在线视频

下一节:什么是变量

返回《C语言程序设计》慕课在线视频列表

常量课程教案、知识点、字幕

同学们大家好

上节课我们介绍了C语言的数据类型

以及C程序中的标识符的命名原则

这节课我们来学习常量

常量顾名思义在程序运行过程中

类型和值都不发生改变的量-也就是我们常说的常数

在常量中又可分为值常量和符号常量

其中值常量按类型划分有整型常量

实型常量

字符常量

字符串常量

枚举常量

除了枚举常量外

编译系统从它们的数据表示形式上

就能区分它们的类型

在计算机中的数据都是以二进制形式存储

在C程序中为了方便使用整型常量

可以用十进制

八进制

十六进制等形式来表示

编译系统会自动将它们转换成二进制形式进行存储

下面是整型常量的表现形式:

十进制由0~9数字序列和正负号构成

比如10

-30

八进制由数字0开头

后跟0~7的数字序列

如 022

017

十六进制由小写0x或大写0X开头

紧接着后跟数字0~9

小写a~f或大写A~F

如 0x12 0Xff

除此之外还有

长整型常量如123L

-128l

无符号整型常量如20u

对于无符号数据不能表示成小于0的数如-20U

在计算机中实型数以浮点形式表示

可以简单的理解成小数点是浮动的

因此实型常量既可以称为是实型

也可以称为浮点数

在C语言中实数采用十进制小数形式

和十进制指数形式两种形式来表示

十进制小数形式就是我们平时使用的带小数点的数字

如0.34

-56.79

均为合法的实数

这里要说明的是小数点不能少

在实际的应用中我们会遇到

绝对值较大或较小的数据

这时我们将采用指数形式来描述

如0.000000123

就可以写成1.23×10-7

因为在C程序中不能有上下角标的形式

所以以e来代替以10为底的指数

因此数据又可以写成

1.23e-7的形式

我们将指数形式表示成

aE±n的形式

其中a为有效数值部分

规范化的形式是

小数点左边有且只有一位非零数字

n为指数部分只能为整数

下面我们列举了合法和非法的实型常量

合法的表示形式有 2.1E5

3.7E-2

非法的实数表示

345(无小数点)

E7(阶码标志E的左侧无有效数值)

50.-E3(符号位的位置不对)

在C语言中实型常量的类型默认按双精度浮点型处理

如果需要单精度浮点型则在常量数值后

加小写或大写f来表示

在计算机中除了处理数值数据

还要具备对文本信息处理的功能

那么文本信息在计算机中

又是如何存储的呢

我们使用字符型数据来表示字母

符号

汉字等数据

字符常量是由单引号括起来的单个普通字符

或转义字符

每个字符具有一个0~255之间的数值

可从ASCII表查出

如字符大写’A’对应的ASCII值为65

小写’a’对应的ASCII值为97

数字字符’1’对应的ASCII值为49

字符1和数字1的区别如图所示

对于某些无法直接输入的

或某些特殊字符需要用转义字符来描述

转义字符的表现形式是

反斜线后面跟一个字符或一个代码值

如大写字母’A’

可以用三位八进制转义字符’\101’表示

也用2位十六进制转义字符’\x41’表示

对应的十进制的ASC值为65

我们给出转义字符对照表

第一列是转义字符在程序中呈现的形式

第二列是转义字符所对应的含义

第三列是该转义字符所对应的ASCII码值

下面我们通过一个示例来描述各转义字符的用法

结果中第1行对应程序第3行语句

\101 \对应大写字母A

\x42对应大写字母B

字符C原样照应

代表换行

结果中第2行对应程序第4行

用反斜杠双引号输出一个双引号字符

结果中第3行对应程序第5行

用两个连续反斜杠输出一个斜杠字符

结果中第4行对应程序第6行

用反斜杠单引号输出一个单引号字符

上面我们描述的都是单个字符

对两个及两个以上字符序列

我们用字符串常量来表示的

字符串常量是用双引号括起来的字符序列

如下面所示

sum

A

123

C语言规定在每个字符串尾自动加一个’\0’作为字符串结束标志

\0是一个ASC码为0的字符

即表示空操作字符

它不引起任何控制动作

也不是一个可显示的字符

不要将字符常量与字符串常量混淆

二者是不同的

比如单撇号’1’表示一个字符

在内存中占一字节

而双引号"1"

实际上包含2个字符

即字符1和\0

除了值常量外还有一种常量的表现形式-符号常量

符号常量是用标识符来代表常量

其定义格式为

#define

后跟标识符和常量

它们之间以空格进行分隔

定义一个符号常量实际上就是给一个值常量起一个名字

来看实例

定义符号常量PRICE 值为30

NUM的值为10

编程实现两个符号常量的乘积

程序如图所示

在编译时将符号常量进行置换

置换后的程序如下

在赋值语句中

PRICE 被数值30替换

NUM被数值10替换

使用符号常量注意事项如下

①行尾不能有分号

②define前面一定要有#

③符号常量名最好使用大写

④符号常量名最好有意义

使用符号常量的优越性在于一改全改

如果符号常量发生变化

只需要修订符号常量一处即可

同学们 这节课就讲到这里

我们下节课见

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

-8.6 函数的嵌套和递归调用

--函数的嵌套和递归调用

--函数的嵌套和递归调用

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

常量笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。