1、第第2 2章章 C C语言程序设计初步知识语言程序设计初步知识 2.1 标识符、常量和变量 2.2 简单数据类型 2.3 基本运算表达式 2.1 标识符、常量和变量标识符、常量和变量 2.1.1 标识符标识符 标识符是用来标识变量名、符号常量名、函数名、文件名以及一些具有专门含义的有效字符序列。C语言规定:合法的标识符只能由字母、数字和下划线组成,第一个字符必须为字母或下划线。大写字母和小写字母被视为两个不同的字符。标识符的长度规定取前8个字符为有效字符。例如:sum、area、aver.PI、_above、L_1_2_3、S1 合法的标识符 A.B.C、A.123、13、3area、a+b
2、不合法的标识符 1.关键字标识符 关键字又称为命令符,在程序中具有特定的含义,不能另作它用,其他字符又无法直接替代。2.预定义标识符 预定义标识符是指C语言提供的库函数名和预编译处理命令(如printf、scanf、define)等。3.用户标识符 由用户根据需要自定义的标识符称为用户标识符。使用用户自定义标识符时,应注意:(1)最好根据其含义选用英文缩写及汉语拼音作标识符,这样便于阅读程序。(2)不能与关键字相同。(3)如果与预定义标识符相同系统并不报错,程序仍能运行,只是预定义标识符失去原来的含义,代之以用户确认的含义。2.1.2 常量和变量常量和变量 1.常量 在程序运行过程中,其值不能
3、被修改的固定量称为常量,C语言中有3种常量:(1)算术型运算常量(如整型常量、实型常量等);(2)字符型常量(如字符常量、字符串常量);(3)标识符所定义的常量。2.变量 程序运行过程中,其值可以改变的量叫变量;程序中使用的变量,属于用户自定义标识符,任何一个变量名必须先定义(即确定变量名和变量的类型)后使用。变量也有类型之分,常用的有整型变量、实型变量、字符型变量等。2.2 简单数据类型简单数据类型 C语言中的数据类型,如图2.1所示。图2.1 C语言中的数据类型 无符号型(无符号型(unsigned)长整型(长整型(long)短整型(短整型(short)整型(整型(int)单精度型(单精度
4、型(float)双精度型(双精度型(double)整型整型文件类型(文件类型(file)字符串类型字符串类型数据类型数据类型指针类型指针类型空类型空类型基本类型基本类型(简单类型)(简单类型)数值类型数值类型字符型(字符型(char)构造类型构造类型数组类型数组类型结构体类型(结构体类型(struct)共用体类型(共用体类型(union)实型实型枚举类型(枚举类型(enum)2.2.1 整型数据整型数据 1.整型常量 整型常量,即整型常数。C语言整型常量可用以下3种形式表示:(1)十进制整型常数。(2)八进制数。以0开头的数。(3)十六进制整数。以0 x开头的数为十六进制数。2.整型变量 1)
5、整型变量的分类 整型变量可分为以下4种整型类型:a.基本型,以int表示;b.短整型,以short表示;c.长整型,以long表示;d.无符号整型,以unsigned表示。2)整型变量的定义、使用 变量必须先定义,后使用。定义整型变量的格式为:int i,j;/*定义i,j为整型变量 */long e,f;/*定义e,f为长整型变量 */int a=3,b=4;/*定义a,b为整型变量同 时将3和4分别赋予a和b */3.整型数据在内存中的存放形式 在C语言中,一个整型数通常占用2个字节,低位在前一个字节,高位在后一个字节。2.2.2 实型数据实型数据 1.实型常量 在C语言中实型表示实数的集
6、合,实型常量又称实数。实型常量有两种表现形式。1)十进制数形式 十进制数形式和数学中的实数形式类同,由数字和小数点组成,小数点是实数的标志。2)指数形式 实数的指数形式类似于数学中的指数形式。组成格式如下:数字小数E整数 (内为可省项)项)2.实型变量 在C语言中实型变量分为单精度(float)和双精度(double)两类。实型变量的定义:float a,b;/*定义a,b为单精度实型变量 */double x,y;/*定义x,y为双精度实型变量 */2.2.3 字符型数据字符型数据 1.字符型常量 字符型常量(简称字符常量)是一个字符,在表示时由两个单引号括起来。例如A、a、+、2等。字符型
7、常量在内存中占用一个字节,存放的是字符的ASCII码值,如字符A的值为65;B的值为66。所有字符常量还可作为整型量进行运算,以及参与相应的各种操作。2.转义字符 C语言中有一种特殊的字符常量转义字符,这类字符常量是以反斜杠字符“”开头的字符序列,它表示某个特定的ASCII码字符。在程序中,转义字符要放在一对单引号内。常用的转义字符及其含义:n回车换行至下一行开头 r 回车至本行开头 b 退格符 反斜杠字符 单引号字符 3.字符变量 字符变量用于存放一个字符常量。字符变量的定义格式为:char c1,c2;其中c1和c2分别被定义为字符型变量。一个字符型变量在内存中占一个字节,字符型变量可以参
8、加任何整型运算。2.3 基本运算表达式基本运算表达式 2.3.1 算术运算符及表达式算术运算符及表达式 1.基本算术运算符 基本算术运算符及特性,见表2-4。表2-4 基本运算符列表 运算符运算符功能功能操作数个数操作数个数结合方向结合方向优先级优先级+-求正求正求负求负单目单目单目单目自右至左自右至左自右至左自右至左高高低低*/%乘法乘法除法除法求余求余双目双目双目双目双目双目自左至右自左至右自左至右自左至右自左至右自左至右+-加法加法减法减法双目双目双目双目自左至右自左至右自左至右自左至右 2.算术表达式 由算术运算符将操作数连接起来的有意义的式子称为算术表达式。例如2+a*b。使用运算符
9、时,应注意:(1)表达式本身的功能。(2)操作数的个数。(3)操作数的类型。(4)运算符的优先级。(5)结合性。(6)任何一个表达式除了有其所实现的功能外,还有表达式其自身的值。2.3.2 赋值运算符及表达式赋值运算符及表达式 1.赋值运算符 “=”符就是赋值运算符,赋值运算符构成的表达式格式如下:变量名变量名=表达式表达式 2.复合赋值运算符 在“=”前面加上双目运算符,如“+”、“-”、“*”、“%”、“/”即构成复合赋值运算符。例如:a+=3 等价于a=a+3 所有复合赋值运算符级别相同,且与赋值运算符同一优先级,都具有右结合性。例如,设a的初值为10,则表达式a+=a-=a*=a等价于
10、:a+=(a-=a*=a)2.3.3 不同类型数据间的转换不同类型数据间的转换 1.1.数据类型自动转换数据类型自动转换 数据类型的自动转换常发生在以下情况中:(1)进行运算时转换。(2)赋值转换。(3)输出转换。(4)函数调用转换。2.2.不同类型数据间的混合运算不同类型数据间的混合运算 整型、实型、字符型数据可以进行混合运算。在进行运算时,应先把不同类型的数据转换为同一类型,然后进行运算,转换规则,参见图2.2所示。图2.2 混合运算时不同类型数据间的转换 doublelongunsignedintchar,shortfloat高高低低 3.3.赋值转换赋值转换 (1)将整型数据赋给实型变
11、量,这时数值不变,但以实型数据形式存到变量中。(2)将实型数据赋给整型变量,这时舍弃小数部分,取整数部分赋给整型变量中。(3)将int型整型数据赋给无符号型整型变量,int型数据按存储单元中实际二进制位的内容直接赋给unsigned型变量。若int型数据为正数,即存储单元中最高位为0,赋值后,则int型数据与unsigned型数据的数值相同。若int型数据为负数,即存储单元中最高位为1,赋值后,unsigned型数据在使用时,最高位将代表一定的数值。(4)字符型数据赋给整型变量。字符型数据占1个字节,而整型变量占2个字节,因此赋值转换过程中,存在位的扩展。a.对于unsigned型变量,字符型
12、数据(8位)传送给unsigned变量的低8位,而unsigned变量的高8位只须补0;b.对于int型变量,若字符型数据最高位为0,则int型变量高8位补0。若字符型数据最高位为1,则int型变量的高8位补1。这样可以保持数值不变。4.4.强制类型转换强制类型转换 在C语言中,可以利用强制类型转换符,将表达式的类型转换为所需类型。一般形式:(类型名类型名)表达式表达式 例如:(int)a表示将a转换成int类型;2.3.4 自增、自减运算符及表达式自增、自减运算符及表达式 1.格式与功能格式与功能 格式:i+i-功能:先使用i的值,然后,变量i的值增加(减少)1,即i=i1。格式:+i -i
13、 功能:变量i先增加(减少)1,即i=i1,然后,再使用i的值。2.自增、自减运算符的运算自增、自减运算符的运算 自增、自减运算为单目运算,其运算数据为单操作数,且操作数只能是变量,不能是常量或表达式。3.自增、自减运算符的结合性自增、自减运算符的结合性 自增、自减运算符属右结合性。注意:(1)使用+i或i+单独构成语句时,其作用是等价的,均为i=i+1。(2)运算对象只能是整型变量和实型变量。(3)对于表达式(i+)+(i+)+(i+),不同的编程环境,其结果不同。2.3.5 逗号运算符及表达式逗号运算符及表达式 用逗号将表达式连接起来的式子称为逗号表达式。1.逗号表达式的一般形式逗号表达式的一般形式 表达式表达式1,表达式表达式2,表达式表达式3,表达式表达式n 2.逗号表达式的功能逗号表达式的功能 先计算表达式1,再计算表达式2,最后计算表达式n。最后一个表达式的值即为此逗号表达式的值。3.逗号运算符的优先级逗号运算符的优先级 在所有运算符中,逗号运算符级别是最低的。利用逗号表达式可实现在一条C语言中对多个变量赋予不同的值。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。