第2章 C程序设计基础
(3)函数调用语句 由函数名、实际参数加上分号组成,其一般形式为: 函数名(实际参数表); (4)流程控制语句 用于控制程序流程,以实现程序的各种结构方式。 (5)复合语句 把多条语句用{}括起来组成一条复合语句。 (6)空语句。 只有分号组成的语句。
四、标准库函数
标准库函数不是C语言本身的组成部分,它是由C编译系 统提供的一些非常有用的功能函数。 在C语言处理系统中,标准库函数存放在不同的头文件 (也称标题文件)中, 例如,输入/输出函数printf和scanf等就存放在标准输 入输出头文件stdio.h中; 求各种数学函数存放在标准输入输出头文件math. h中。 使用时只要把头文件包含在用户程序中,就可以直接调用 相应的库函数了。即在程序开始部分用如下形式: #include <头文件名> 或 #include "头文件名"
2.3.4符号常量
符号常量:是用标识符来表示一个数据;在程序中不能 给它重新赋值。 定义形式: #define 标识符 常量数据 例如: #define PI 3.14159 在程序预处理时,凡是出现标识符PI的地方都将用 数据3.14159来替换。 如: 2*2.3*PI 就等价于 2*2.3*3.14159。 注意:符号常量不是变量,它所代表的值不能再改 变。也就是说,在程序中,不能再用赋值语句对它重 新赋值。
反斜杠字符
单引号字符
8进制数表示的ASCII码对应的字符
\xhh
16进制数表示的ASCII码对应的字符
2.3.3字符串常量
1.字符串常量的概念和字符串长度 字符串常量是用一对双引号括起来的若干字符序列。 字符串中字符的个数称为字符串长度。长度为0的字符串 (即一个字符都没有的字符串)称为空串,表示为“ ” (一 对紧连的双引号)。 例如,“How do you do.”、“Good morning.”等,都 是字符串常量,其长度分别为14和13(空格也是一个字符)。 如果反斜杠和双引号作为字符串中的有效字符,则必须使用 转义字符。 例如: (1)C:\msdos\v6.22 → "C:\\msdos\\v6.22" (2)I say:"Goodbye!" → "I say:\"Goodbye!\"“
3. 运算符
C语言中含有相当丰富的运算符。运算符与变量、 函数一起组成表达式,表示各种运算功能。 运算符由一个或多个字符组成。如: +、-、*、/、%、=、<、>、<=、>=、!=、 ==、<<、>>、&、|、 &&、||、^、~、()、
[]、->、.、!、?、:、,等。
4.分隔符
在C语言中采用的分隔符有逗号和空格两种。 逗号主要用在类型说明和函数参数表中,分隔各个变 量。 空格多用于语句各单词之间,作间隔符。 在关键字和标识符之间必须要有一个或一个以上 的空格符作间隔,否则将会出现语法错误。 例如: 把int a;写成 inta; C编译器会把inta当成一个标识符处理,其结果 必然出错。
2 、C语言的数据类型
2.3 常量
常量是指在程序执行过程中,其值不能发生变化的量。 2.3.1 数值常量 数值常量分为整型常量和实型常量 一、整型常量 整型常量即整常数,在C语言中可用三种形式表示: (1)十进制。例如10、36。 (2)八进制(以数字0开头)。例如012。 (3)十六进制(以0x开头)。例如0x36。 整型常数的后缀 由于基本整型的长度位16位,因而能够表示的数的范围 是有限的(-32768—32767)。如果使用的数超过了这个 范围,就必须用长整型数来表示。长整型数是用后缀L或l来表 示的。例如156L(十进制),013L(八进制),0x12L (十六进制)。 无符号数用后缀u表示,如158u,0x48u,041u等。
2.字符串的存储 C语言规定:在存储字符串常量时,由系统在字符串的末 尾自动加一个‘\0‟作为字符串的结束标志。 注意:在源程序中书写字符串常量时,不必加结束字符‘\0‟, 否则画蛇添足。 如果有一个字符串为“CHINA”,则它在内存中的实际 存储如下所示:
C H I N A \0
最后一个字符'\0'是系统自动加上的,它占用6字节而 非5字节内存空间。
2.转义字符 C语言还允许使用一种特殊形式的字符常量,就是以 反斜杠“\ ”开头的转义字符。 注意:如果反斜杠、单引号或者双引号本身作为字符常量, 必须使用转义字符:‘\\’、‘\’‘、‘\”’。
功能 字符 形式 \n 换行 \t 横向跳 格 \b 退格 \r 回车
字符 形式 \\ \’
\ddd
功能
5.常量
C 语言中使用的常量可分为数字常量、字符常 量、字符串常量、符号常量、转义字符等多种。在 以后的章节中将专门给予介绍。
6.注释符
C 语言的注释符是以“/*”开头并以“*/”结尾的串。 在“/*”和“*/”之间的即为注释。
程序编译时,不对注释作任何处理。注释可出现在程序
中的任何位置。注释用来向用户提示或解释程序的意义。在 调试程序中对暂不使用的语句也可用注释符括起来,使翻译 跳过不作处理,待调试结束后再去掉注释符。
说明:
(1)在C语言中,大小写字母不等效。因此,a 和A,I和i,Sum和sum,分别是两个不同的标 识符。 (2)C程序中,标识符的使用很多,使用时要 注意语法规则。定义标识符时,一般应尽量做到见 名知义,以提高程序的可读性。 (3)建议变量名的长度不要超过8个字符。 (4)C语言规定,用户选取的标识符不能是C 语言规定的关键字。
3.整型变量的定义
一般形式: 类型说明符 变量名标识符,变量名标识符……; 例如: int a,b,c,d; unsigned long x,y; 注意: 允许在一个类型说明符后,说明多个相同类型的变量。变 量名之间用逗号分隔。类型说明符与变量名之间至少用一 个空格间隔。 最后一个变量名后必须以“;”结尾。 变量说明必须放在变量使用之前,一般放在函数体的开头 部分。
第2章 C程序设计基础
本章主要介绍C语言的基本字符集、词 汇、数据类型;基本数据类型的使用;数 据类型之间的转换;运算符、表达式、优 先级和结合性的概念;表达式的书写方法 和值的计算。
2.1 C语言语法基础
一、基本字符集
1、英文字母:大小写各26个,共计52个; 2、阿拉伯数:0~9共10个数字; 3、其他一些可打印(可以显示)的字符,如各种标 点符号、运算符号、括号等; 4、一些特殊字符,如空格符、换行符、制表符和转 义字符等。
2.3.2字符常量 1.字符常量 用一对单引号括起来的单个字符,称为字符常量。 例如,‘A’、‘1’、‘+’等。 字符常量的特点: 1.字符常量只能用单引号. 2.字符常量中的单引号只起定界作用并不表示字 符本身.单引号中的字符不能是单引号和反斜杠. 3.字符常量只能是单个字符,不能是字符串. 4.字符可以是字符集中任意字符.
字符常量与字符串常量的区别: (1)定界符不同:字符常量使用单引号,而字符 串常量使用双引号; (2)长度不同:字符常量的长度固定为 1,而字 符串常量的长度,可以是0,也可以是某个整数; ( 3 )字符常量可以赋值给字符变量 , 但字符串常 量不能赋值给字符变量; ( 4 )存储要求不同:字符常量存储的是字符的 ASCII码值,而字符串常量,除了要存储有效的字符 外,还要存储一个结束标志’\0’。
2.2 数据与数据类型
ቤተ መጻሕፍቲ ባይዱ1、 数据与类型
数据是程序处理的对象。C语言把程序能处理
的基本数据对象分成一些集合。属于同一集合的
数据对象具有同样性质:采用统一的书写形式, 在具体实现中采用同样的编码方式(按同样规则 对应到内部二进制编码,采用同样二进制编码位 数),对它们能做同样操作等等。语言中具有这
样性质的一个数据集合称为一个类型。
三、语 句
语句是组成程序的基本单位,它能完成特定操作, 语句的有机组合能实现指定的计算机处理功能。 C语言的语句分为: (1)表达式语句 由表达式加上分号“;”组成。其一般形式为: 表达式; 执行表达式语句就是计算表达式的值。 例: a+b; i++ (2)赋值语句 将表达式或变量的值赋值给一个变量。 例:a=b+c; m=5;
二、实型常量
实型常量即实数,在C语言中又称浮点数,其值有两 种表达形式: (1)小数形式。例如3.14、9.8。 (2)指数形式:<尾数>E(e)<整型指数>。 例如3.0E+5等。 注意,以下不是合法的实数: 12(无小数点),E3(E前无数字),-4(无E标志), 56.-E7(负号位置不对),8.9E(无阶码)。 ☆规范化的指数形式 :1.345e5 实型常量不分单、双精度,都按双精度型处理。
2.4.2 整型变量
1.分类 根据占用内存字节数的不同,整型变量又分为4类: (1)基本整型(类型关键字为int)。 (2)短整型(类型关键字为short [int])。 (3)长整型(类型关键字为long [int])。 (4)无符号整型。无符号型又分为无符号基本整型 (unsigned [int])、无符号短整型(unsigned short) 和无符号长整型(unsigned long)三种,只能用来存储无 符号整数。 2.占用内存字节数与值域 上述各类型整型变量占用的内存字节数,随系统而异。 在16位操作系统中,一般用2字节表示一个int型变量,且 long型(4字节)≥int型(2字节)≥short型(2字节)。
2、关键字(保留字)
关键字就是具有特定含义的标识符,用户不能用来作 自定义标识符。由ANSI标准推荐的关键字有32个,常 用的有: 与数据类型有关的: char int float double signed unsigned short long void struct union typedef enum sizeof 与存储类别有关的: auto extern register static 与程序控制结构有关的: do while for if else switch case default goto continue break return