目录

  • 1 第一章  C语言概述
    • 1.1 第一节  C语言的产生和发展
    • 1.2 第二节  C语言的特点
    • 1.3 第三节  两个简单的C程序
    • 1.4 第四节  C程序的上机步骤
    • 1.5 第五节  Dev-C++介绍
    • 1.6 第六节  VC2010学习版介绍
    • 1.7 第七节  宏定义和文件包含
    • 1.8 本章小结
    • 1.9 本章单元测试
  • 2 第二章  基本数据类型与简单程序设计
    • 2.1 第一节  C语言的基本数据类型
    • 2.2 第二节  常量
    • 2.3 第三节  变量
    • 2.4 第四节  赋值语句
    • 2.5 第五节  数据输出
    • 2.6 第六节 数据输入
    • 2.7 第七节  运算符
    • 2.8 第八节  常用的数学函数
    • 2.9 第九节  顺序结构程序设计
    • 2.10 本章小结
    • 2.11 本章单元测试
  • 3 第三章  分支结构程序设计
  • 4 第四章  循环结构程序设计
  • 5 附录
    • 5.1 附录A   编译常见错误提示
    • 5.2 附录B  常见C语言英语单词
    • 5.3 什么是编译器
    • 5.4 与编译器相关的几个知识点
第二节  常量
  • 1 文字讲解
  • 2 视频讲解

一、常量和符号常量

在程序的运行过程中,其值保持不变的量称为常量。常量可以用一个标识符来表示,称为符号常量,可在程序开头用#define命令来定义。例如:

#define   PI    3.1415926

此后,只要是在文件中出现的PI均可用3.1415926来代替。

二、整型常量

除了大家比较熟悉的整型常量(如100、0、-256)之外,C语言中还有其他形式的整型常量,如表2-2所示。

           表2-2整型常量

例子说明
-1234十进制整型常量(包含数字0~9)
01234八进制整型常量(以0开头,包含数字0~7)
0x1234十六进制整型常量(以0x或0X开头,包含数字0~9、字母A~F或a~f
0Llong型十进制整型常量(以l或L结尾)

例如,0235等于十进制数157,即 。-0X23a等于十进制数-570。因为0X23a= 。

任何类型的数据在计算机中都是以二进制补码形式存储的。 short型数据在内存中占16位,long int型数据在内存中占32位,其中最高位为符号位(无符号型除外),1表示负数,0表示正数。正数的补码等于其原码,而负数的补码等于其原码的反码加1。例如:

0000 0000 0101 0011表示83。

1111 1111 0101 1101表示-83

0000 0000 0000 0000 0000 0000 0101 0011 表示83L

1111 1111 1111 1111 1111 1111 0101 0011 表示-83L

三、浮点型常量

C语言中的浮点类型主要分为单精度和双精度两种,一般以双精度为主。注意,在C语言数据中,1和1.0是两种不同类型的数,1是整数,而1.0则是双精度浮点数。

以下是合法的十进制浮点数表示:

1234.56、-1.2、0.0、.5、6.、1000000.0 。

浮点数还可采用科学计数法,以下是合法的科学计数法表示:

1.23456e2、0.345e-3、-765el2、-.5e-8、6.e-7、1.0e10 。

必须说明的是,出现在字母e(或E)之前的小数点,其左边或右边至少应有一位数字,在字母e(或E)之后必须是整数,即1.34E1.2、.e2均是非法的浮点数。

又如: 0.00013456=1.23456× ,可表示成1.23456e-4 或 0.123456e-3 。它在内存中的存放形式如图2-1所示。

           

四、字符型常量

C语言的字符常量是用单引号(即撇号)括起来的一个字符,如'*'、'a'、'A'、'&'、'!'等都是字符常量。注意,'a'和'A'是不同的字符常量。

字符数据存放在内存中的,并不是字符本身,而是字符的代码,即ASCII码(美国标准信息交换码)。ASCII标准字符集定义了128个字符,每个字符对应于一个ASCII码,编码值为0~127。表2-3列出了部分字符的ASCI码。

    表2-3部分字符的ASC码

字符ASCI码字符ASC码
回车13A65
空格32B66
*42C67
+43
048Z90
149a97
250b98
351c99
957z
122

从表2-3可以看出:

      ①数字字符'0'~'9'的ASCII码是连续的;

      ②大写字母'A'~'Z'的ASCII码是连续的;

      ③小写字母'a'~'z'的ASCII码也是连续的;

      ④小写字母的ASCII码比对应的大写字母的ASC码大32。

例如:

0100 0001表示'A'或65。

0110 0001表示'a'或97。

可以看出,字符的存储形式与整数相似,不同的是,它在内存中仅占一个字节。C语言的字符型数据与整型数据之间可以通用。

除了以上的字符常量外,一些不可显示的控制字符(比如回车符、制表符、退格键等)在程序中无法用一个一般形式的字符表示,C语言允许用一种特殊形式的字符常量来表示这些字符: 一个反斜杆“\”开头的字符,称为转义字符。如'\n'表示换行,它是将普通字符“转义”成特殊字符。常用的转义字符有:

'\n'    换行符(将当前位置移到下一行开头)

'\t'     水平制表符(跳到下一个<Tab>位置)

'\b'    退格

'\r'    回车(将当前位置移到本行开头)

'\f'    走纸

'\\'    反斜杠

'\''    单引号

'\"'    双引号

转义字符看起来是两个字符,实际上只能算一个字符。

也可以使用“\”加上一个1~3位的八进制数或“\x”加上一个1~2位的十六进制数表示的ASC码值来表示转义字符,例如:

'\0'    表示空字符。

'\33'或'\033'表示Esc键(27)。

'\07'  表示响铃

'\xA'  表示换行(10)