《[IT认证]数据类型、运算符和表达式 C语言》由会员分享,可在线阅读,更多相关《[IT认证]数据类型、运算符和表达式 C语言(80页珍藏版)》请在金锄头文库上搜索。
1、中南民族大学电子信息工程学院计算机教研室田晓梅第三章 数据类型、运算符和表达式3.1 C的数据类型的数据类型 3.2 常量与变量常量与变量 3.3 整型数据整型数据 3.4 浮点型数据浮点型数据 3.5 字符型数据字符型数据 3.6 变量赋初值变量赋初值 3.7 数据类型转换数据类型转换 3.8 算术运算符和算术表达式算术运算符和算术表达式 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式小结小结课堂练习课堂练习练习练习提示:预习第四章提示:预习第四章中南民族大学电子信息工程学院计算机教研室田晓梅3.1 C的数据类型的数据类型C语言提
2、供了以下一些数据类型:C语言提供了以下一些数据类型:数据类型指针类型空类型void数据类型指针类型空类型void构造类型数组类型结构类型struct *联合类型union *构造类型数组类型结构类型struct *联合类型union *枚举类型enum *基本类型整型 int字符型 char实型(浮点型)枚举类型enum *基本类型整型 int字符型 char实型(浮点型)单精度实型 float双精度实型单精度实型 float双精度实型 double长双精度实型长双精度实型 long double中南民族大学电子信息工程学院计算机教研室田晓梅3.2 常量与变量常量与变量 一、常量一、常量在程序
3、运行过程中,其值不 能被改变的量称为常量在程序运行过程中,其值不 能被改变的量称为常量常量区分为不同的类型常量区分为不同的类型:1.整型常量整型常量 2.实型常量实型常量 3.字符常量字符常量 4.字符串常量字符串常量 5.符号常量符号常量 6.枚举常量枚举常量二、变量二、变量1.什么是变量什么是变量2.变量命名规则变量命名规则3.定义变量时注意问题定义变量时注意问题4.变量的定义变量的定义中南民族大学电子信息工程学院计算机教研室田晓梅常量常量 1.整型常量整型常量 整型常量可用十进制、八进制、十六进制、无符号整 型、长整型和无符号长整型表示。整型常量可用十进制、八进制、十六进制、无符号整 型
4、、长整型和无符号长整型表示。 1234表示的是十进制数表示的是十进制数 01234表示的八进制数表示的八进制数 0x1234表示的是十六进制数据,如果是长整型常量,后 面还要加上表示的是十六进制数据,如果是长整型常量,后 面还要加上l或或L,如,如1234l或或1234L。 2浮点型常量(实型常量)浮点型常量(实型常量) 如如2.55,2.55E-5等。浮点型常量有两种表示方法, 小数表示法,如等。浮点型常量有两种表示方法, 小数表示法,如2.55;科学计数法,如;科学计数法,如2.55E-5,其 中的,其 中的E可用可用e,表示,表示2.5510-5。中南民族大学电子信息工程学院计算机教研室
5、田晓梅常量4字符串常量字符串常量 如如 ”a”、”aaa”、”123” 等。字符串常量必须用等。字符串常量必须用双双 引号引号引起来。引起来。 注意注意:字符串常量与字符常量不同,字符串常量必须用 双引号引起来,而字符常量用单引号引起来;字符串常 量如:字符串常量与字符常量不同,字符串常量必须用 双引号引起来,而字符常量用单引号引起来;字符串常 量如”x”在存储器内部存储的字符序列为在存储器内部存储的字符序列为”x0”,0 (NULL)是串结束符,而字符常量如)是串结束符,而字符常量如x在存储器内部 存储的只是字符在存储器内部 存储的只是字符x。 3字符常量字符常量 用一对用一对单撇号单撇号括
6、起来的单个字符。这里所指的单个字 符可以是英文大、小写字母(括起来的单个字符。这里所指的单个字 符可以是英文大、小写字母(AZ,az)、数字字 符()、数字字 符(09)和)和特殊字符特殊字符等。等。 如:如:a、n、3、L。中南民族大学电子信息工程学院计算机教研室田晓梅常量常量 5符号常量符号常量 用一个标识符代表一个常量,即标识符形式的常量,称 为符号常量。用一个标识符代表一个常量,即标识符形式的常量,称 为符号常量。例3.1例3.1 符号常量的值在其作用域内不能改变,也不能被再赋 值,这与变量不同。习惯上,符号常量用大写字母,变 量名用小写字母加以区别。符号常量的值在其作用域内不能改变,
7、也不能被再赋 值,这与变量不同。习惯上,符号常量用大写字母,变 量名用小写字母加以区别。 使用符号常量可以做到使用符号常量可以做到见名知义见名知义,增加程序的可读性, 简化书写;修改方便,需要时,增加程序的可读性, 简化书写;修改方便,需要时“一改全改一改全改”。 思考思考:下列常量各是什么常量?下列常量各是什么常量? 123L 1.0E-5 ”a”aPI(假设已用(假设已用 #define定义)定义) 6枚举常量(枚举常量(第第11章介绍)章介绍)中南民族大学电子信息工程学院计算机教研室田晓梅例例3.1 符号常量的使用符号常量的使用 运行结果:运行结果: total=300total=300
8、说明:说明:程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可 以和常量一样进行运算程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可 以和常量一样进行运算说明:说明:说明:说明:程序中用#define命令行定义PRICE代表常 量30,此后凡在本文件中出现的PRICE都代表30,可 以和常量一样进行运算程序中用#define命令行定义PRICE代表常量30,此后凡在本文件中出现的PRICE都代表30,可 以和常量一样进行运算说明:说明:如再用赋值语句给如再用赋值语句给 PRICE赋值是错的
9、赋值是错的 PRICE=40; /* 错误, 不能给符号常量赋值错误, 不能给符号常量赋值说明:说明:说明:说明:如再用赋值语句给如再用赋值语句给 PRICE赋值是错的赋值是错的 PRICE=40; /* 错误, 不能给符号常量赋值错误, 不能给符号常量赋值符号常量: 符号常量: 用一个标识符代表一个常量。符号常量的值在其作用域内不能改变,也不能再被赋值。用一个标识符代表一个常量。符号常量的值在其作用域内不能改变,也不能再被赋值。符号常量符号常量符号常量符号常量: : : : 用一个标识符代表一个常量。符号常量的 值在其作用域内不能改变,也不能再被赋值。用一个标识符代表一个常量。符号常量的值在
10、其作用域内不能改变,也不能再被赋值。#define PRICE 30 #include void main( ) int num,total; num=10; total=num*PRICE; printf(”total=%dn”,total); 中南民族大学电子信息工程学院计算机教研室田晓梅1.什么是变量?1.什么是变量? 变量代表内存中具有特定属性的一个存储单 元,它用来存放数据,这就是变量的值,在程序运 行期间,这些值是可以改变的。变量代表内存中具有特定属性的一个存储单 元,它用来存放数据,这就是变量的值,在程序运 行期间,这些值是可以改变的。如有定义:如有定义:float price=
11、5.0; 变量名(如变量名(如price)和类型(如)和类型(如float)告诉编译系统为)告诉编译系统为float型变量型变量price分配分配4个字节的内存空间,并将一个实型数值个字节的内存空间,并将一个实型数值5.0存储在该内存空间内。在源程序中可以使用变量名去存储在该内存空间内。在源程序中可以使用变量名去”访问访问”该变量,对变量的该变量,对变量的”访问访问”操作,包括读取变量值的操作和给它赋予新变量值的操作。操作,包括读取变量值的操作和给它赋予新变量值的操作。二、变量二、变量内存 地址内存 地址变量值(5.0) (9.0)变量值(5.0) (9.0)变量名price变量名price变
12、量名price的内 存空间变量名price的内 存空间 (4个字节)(4个字节)例如:例如:printf(”price before change=%fn”,price);price=9.0;printf(”price after change=%fn”,price);例如:例如:printf(”price before change=%fn”,price);price=9.0;printf(”price after change=%fn”,price);中南民族大学电子信息工程学院计算机教研室田晓梅2.变量命名规则变量命名规则变量命名的规定:变量命名的规定:语言规定标识符只能由语言规定标识符
13、只能由字母、数字 和下划线字母、数字 和下划线三种字符组成,且第一个字符必须为字母或下 划线。变量名是标识符的一种。三种字符组成,且第一个字符必须为字母或下 划线。变量名是标识符的一种。 例:判断下列变量命名是否正确:例:判断下列变量命名是否正确:sum, lotus_1_2_3, M.D.John, _total, month, Student_name,a2,BASIC, ab,li_ling,变量,变量_a,¥,¥123,3D64,? ?sum,lotus_1_2_3,_total,month,Student_name,BASIC, li_lingM.D.John,ab,变量,变量_a,
14、¥,¥123,3D64, a2? ?中南民族大学电子信息工程学院计算机教研室田晓梅3.启用变量名时注意启用变量名时注意(1)编译系统将大写字母和小写字母认为是两个不 同的字符。编译系统将大写字母和小写字母认为是两个不 同的字符。(2)建议变量名的长度最好不要超过建议变量名的长度最好不要超过8个字符。个字符。(3)在选择变量名和其它标识符时,应注意做到在选择变量名和其它标识符时,应注意做到”见 名知意见 名知意”,即选有含义的英文单词(或其缩写)作 标识符。,即选有含义的英文单词(或其缩写)作 标识符。(4)要求对所有用到的变量作强制定义,也就是要求对所有用到的变量作强制定义,也就是”先 定义,
15、后使用先 定义,后使用” 。中南民族大学电子信息工程学院计算机教研室田晓梅启用变量名时注意(5)变量名的启用不要与语言系统的关键字(全部为小写字 母)相同,也不要与系统标准函数库中的函数名、宏名 和变量名相同。(5)变量名的启用不要与语言系统的关键字(全部为小写字 母)相同,也不要与系统标准函数库中的函数名、宏名 和变量名相同。autodoubleintstruct breakelselongswitch caseenumregistertypedef charexternreturnunion constfloatshortunsigned continueforsignedvoid defaultgotosizeofvolatile do ifstaticwhile中南民族大学电子信息工程学院计算机教研室田晓梅启用变量名注意启用变量名注意(6)常规建议)常规建议:即在标准并没有作硬性规定,但习惯上即在标准并没有作硬性规定,但习惯上 大家都遵守的规则:大家都遵守的规则: 变量名用英文小写字母,常量名用英文大写字母。 例如:变量名用英文小写字母,常量名用英文大写字母。 例如: #define SIZE 60 以下划线开头的变量名(或函数名)表示的是标准 函数库内自行调用的变量(或函数),通常用户不能 调用。例如:以下划线开头的变量名(或函数名)表示的是标准 函数库内