考点2 常量和变量《C语言程序设计》山东(春季高考)软件与应用技术类 知识点讲解
山东省(软件与应用技术类)春季高考
《C语言程序设计》复习讲义
模块 一 C 语言程序设计
考点 2 常量和变量
【考纲要求】
(1)理解常量和变量的定义。
【知识网络】
【知识和技能要点】
一、常量与符号常量
学科网(北京)股份有限公司
1. 常量的概念
程序中所处理的数据,按其值在运行期间是否可变,分为常量与变量两类。常量者,其值一经写定便不再更改,编译器径以其字面之值参与运算,故又称字面常量。常量的写法各有定式:数值以数码与进制标识书写,字符以单引号括起,字符串以双引号括起。书写之时须留意其所属类型与取值范围,进制前缀写错或数量级估计不足,都会使所得之值与预期相去甚远。
(1)数值常量:以数码书写,按进制分为十进制、八进制与十六进制三种。
(2)字符常量:以单引号括起单个字符,内存中所存者为其编码值。
2. 符号常量的定义
若某一常量在程序中屡次出现,可先为其取一名字,凡用该名之处,编译之前皆以所定之值替换,此即符号常量。定义之法为在程序开头写 #define 指令,如 #define PI 3.1415926,此后 PI 即代表此数。指令行由 # 起首,宏名之后以空格分隔常量值,行末不加分号。符号常量之名与变量名同样须合标识符之规,书写时多用大写字母,以别于变量。
(1)定义形式:写作 #define 宏名 常量值,如 #define G 9.8。
(2)替换时机:替换在编译之前完成,故程序中并不为它另辟存储空间。
3. 符号常量的使用
符号常量之长在于便于修改:同一数值只写一处,改其定义则全篇皆改,不致有遗漏之虞。然其值一经定义便不可再改,若于程序中写作 G = 77; 之类,编译器必指为错误。又符号常量无类型可言,凡其出现之处,不过以字面之值代入而已。故读书或解题时见一标识符,须先辨其为变量抑或符号常量,方不致误判其可否赋值。
二、常量的书写形式
1. 整型常量的进制
整型常量即不带小数点的整数,其写法有进制之别。十进制最为常见,直接以数字书写;以零开头者为八进制,其位只容零至七;以 0x 或 0X 开头者为十六进制,兼用数字与 a 至 f 的字母。又可在数之后加字母 L,标明其为长整型,以免数值较大时溢出。同一串数字前缀不同,所指之数便判然有别,故审题时须先辨其进制,再按权展开求值。
(1)十进制:如 1234、-256,以数字直接书写,不加前缀。
(2)八进制:以 0 开头,如 0235,其值为 2×8²+3×8+5,即十进制的 157。
(3)十六进制:以 0x 或 0X 开头,如 0x23a,其值为十进制的 570。
学科网(北京)股份有限公司
(4)长整型:在数之后加 L 或 l,如 83L,在内存中占四个字节。
2. 浮点常量的两种写法
带小数或数量级甚大的数,写作浮点常量,其形式有二:一为小数形式,如 1234.56、-1.2;二为指数形式,即在小数之后加字母 e 或 E 再接整数指数,如 1.23456e2 表示一百二十三点四五六。指数写法有定式:小数点两侧至少各有一位数,e 之后必为整数且不得再带小数点,故 1.34e1.2 与 .e2 皆非法。浮点常量默认为双精度,若在数后加字母 f,则标明为单精度。
(1)小数形式:如 1234.56、0.0、.5,小数点前后可省其一,然不可全省。
(2)指数形式:如 1.23456e2、0.345E-3,e 之前为尾数,之后为指数。
(3)类型与精度:默认双精度;加后缀 f 为单精度;1 与 1.0 分属整型与浮点型。
3. 字符常量与转义字符
以单引号括起的单个字符,称为字符常量。字符存入内存者并非字形,而是其编码,即美国信息交换标准码,占一个字节。数字字符、大写字母与小写字母三者各自连成一段,故可据编码之先后判断其类别;小写字母的编码较相应大写字母大三十二。凡不可见或不便书写者,如换行、退格,则以反斜杠引导的转义写法表示,一个转义字符虽写两笔,实只作一个字符计。
(1)编码规律:'0' 至 '9'、'A' 至 'Z'、'a' 至 'z' 各自连续,小写较大写大 32。
(2)转义字符:以反斜杠开头,如 '\n' 为换行、'\t' 为制表、'\\' 为反斜杠本身、'\0' 为空字符。
(3)数字转义:以反斜杠接一至三位八进制数表示编码,如 '\101' 即字母 A。
三、变量与标识符
1. 变量的说明与初值
运行期间其值可以改变的量称为变量,其名即变量名。变量在使用之前须先说明其类型,如 int k = 50; 一句,int 为类型标识符,k 为变量名,50 为其初值。说明之时,系统依类型在内存中划出相当大小的空间,并将变量名与该空间相联。说明之后若未赋初值,其所存者为无定之数,不可径行参与运算,故宜于说明之时即行初始化,以免取用残留之值而致错误。
(1)说明形式:写作 类型名 变量名表; 如 int i, j, k; 一句可说明多个同类型变量。
(2)初始化:如 int k = 50; 于说明之处即给初值,可免未赋值之患。
(3)字符型变量:如 char c1, c2; 每个字符型变量可存一个字符,实存其编码。
学科网(北京)股份有限公司