C语言程序设计-教学ppt课件 --电子教案(第1章--第6章)-第2章.ppt

上传人:飞****2 文档编号:69870051 上传时间:2023-01-10 格式:PPT 页数:73 大小:1.79MB
返回 下载 相关 举报
C语言程序设计-教学ppt课件 --电子教案(第1章--第6章)-第2章.ppt_第1页
第1页 / 共73页
C语言程序设计-教学ppt课件 --电子教案(第1章--第6章)-第2章.ppt_第2页
第2页 / 共73页
点击查看更多>>
资源描述

《C语言程序设计-教学ppt课件 --电子教案(第1章--第6章)-第2章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计-教学ppt课件 --电子教案(第1章--第6章)-第2章.ppt(73页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、高等职业教育示范专业规划教材高等职业教育示范专业规划教材C C语言程序设计语言程序设计v第第2 2章章 C C程序设计的初步知识程序设计的初步知识 http:/http:/C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 本章目录本章目录 第第2 2章章 C C程序设计的初步知识程序设计的初步知识 2.1 2.1 数据类型概述数据类型概述2.2 2.2 常量常量2.3 2.3 变量变量2.4 2.4 变量赋值及数据类型转换变量赋值及数据类型转换2.5 2.5 运算符与表达式运算符与表达式 本章小结本章小结 习题习题C C语言程序设计语言程序设计

2、 机械工业出版社机械工业出版社http:/2023年年1月月10日日 第第2 2章章 C C程序设计的初步知识程序设计的初步知识 学习目标:学习目标:了解常量和变量的概念、表示和分类。了解常量和变量的概念、表示和分类。掌握掌握C C语言的几种基本数据类型的概念,并熟练掌语言的几种基本数据类型的概念,并熟练掌 握这些数据类型的常量、变量的使用及运算。握这些数据类型的常量、变量的使用及运算。掌握基本运算符的运算规则和表达式的构成方法。掌握基本运算符的运算规则和表达式的构成方法。返回目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.1 2.1

3、 数据类型概述数据类型概述返回目录 C C语言语言数据类型数据类型丰丰富,除了具备一般计富,除了具备一般计算机语言都有的基本算机语言都有的基本数据类型以外,还具数据类型以外,还具有有构造类型构造类型和和指针类指针类型型等。等。C C的全部数据的全部数据类型如下图类型如下图2-12-1所示所示 本章主要介绍基本数据类型,其他数据类型将在后续章本章主要介绍基本数据类型,其他数据类型将在后续章节中详细介绍。节中详细介绍。C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2 2.2 常量常量(1)(1)2.2.1 2.2.1 整型常量整型常量2.2

4、.2 2.2.2 实型常量实型常量2.2.3 2.2.3 字符常量字符常量2.2.4 2.2.4 转义字符常量转义字符常量2.2.5 2.2.5 字符串常量字符串常量2.2.6 2.2.6 符号常量符号常量返回目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 常量常量又叫又叫常数常数,它是程序运行过程中,它是程序运行过程中其值其值不不发生变化的量,它可以不必定义发生变化的量,它可以不必定义而直接使用。而直接使用。常量常量可分为可分为直接常量直接常量和和符符号常量号常量。C C语言中的直接常量按语言中的直接常量按类型类型可可分为分为整型常量整

5、型常量、实型常量实型常量、字符常量字符常量和和字符串常量字符串常量,它们的类型是由书写方法,它们的类型是由书写方法自动默认的。自动默认的。2.2 2.2 常量常量(2)(2)返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.1 2.2.1 整型常量整型常量v整型常量就是整数,包括正整数、负整数和0,其数据类型显然是整型。vC语言中整型常量可分为基本型(int)、短整型(short int)和长整型(long int)三类,而每一类整型常量又可分为带符号整型(signed)和无符号整型(unsigned)两大类。2.2.1 整

6、型常量返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.1 2.2.1 整型常量整型常量数据类型数据类型类型说明符类型说明符数的范围数的范围字节数字节数无符号短整型unsignedshortint065535即0216-12无符号基本整型unsignedint065535即0216-12无符号长整型unsignedlongint04294967295即0232-14有符号短整型signedshortint-3276832767即-2-15215-12有符号基本整型signedint-3276832767即-2-15215-1

7、2有符号长整型longint-21474836482147483647即-2-15215-14各类整型常量所占内存的字节数及数值范围各类整型常量所占内存的字节数及数值范围 返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.1 2.2.1 整型常量整型常量C C语言中整型常量的表示方式:语言中整型常量的表示方式:十进制整数。如、-243、+15、0。八进制整数。书写方法是在通常八进制整数的前面加一个数字0,即以0作为八进制数的前缀。数码取值为07。如00、015、+024、-023等,它们分别相当于十进制整数0、13、20和-

8、19。十六进制数。书写方法是在通常十六进制整数的前面加0 x,即以0X或0 x 作为十六进制数的前缀,其数码取值为09,AF或af。如0 x0、0 x15、+0 x 28、-0 x23、0XA0等,它们分别相当于十进制整数0、21、40、-35和160。在整型常量的后面加上在整型常量的后面加上L L或或l l来表示长整型;在整型常量的来表示长整型;在整型常量的后面加上后面加上U U或或u u来表示无符号整型。如来表示无符号整型。如015L015L、-0 x23L-0 x23L、124L124L都是长整型常量;都是长整型常量;012U012U、0 x15U0 x15U都是无符号整型。都是无符号整

9、型。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.1 2.2.1 整型常量整型常量C C语言中整型常量的表示方式:语言中整型常量的表示方式:十进制整数。如、-243、+15、0。八进制整数。书写方法是在通常八进制整数的前面加一个数字0,即以0作为八进制数的前缀。数码取值为07。如00、015、+024、-023等,它们分别相当于十进制整数0、13、20和-19。十六进制数。书写方法是在通常十六进制整数的前面加0 x,即以0X或0 x 作为十六进制数的前缀,其数码取值为09,AF或af。如0 x0、0 x15、+0 x 2

10、8、-0 x23、0XA0等,它们分别相当于十进制整数0、21、40、-35和160。在整型常量的后面加上在整型常量的后面加上L L或或l l来表示长整型;在整型常量的来表示长整型;在整型常量的后面加上后面加上U U或或u u来表示无符号整型。如来表示无符号整型。如015L015L、-0 x23L-0 x23L、124L124L都是长整型常量;都是长整型常量;012U012U、0 x15U0 x15U都是无符号整型。都是无符号整型。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.1 2.2.1 整型常量整型常量注意:注意:

11、v正整数前面的正整数前面的“+”可以可以省略省略。v各种无符号整型常量所占的内存空间字节数与相应的各种无符号整型常量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示有符号类型量相同。但由于省去了符号位,故不能表示负负数,但其存放的整型数的值的范围比有符号正整数扩数,但其存放的整型数的值的范围比有符号正整数扩大一倍。大一倍。v前缀、后缀同时使用可以表示各种类型的数。如前缀、后缀同时使用可以表示各种类型的数。如0 xA5Lu0 xA5Lu表示十六进制无符号长整数表示十六进制无符号长整数A5A5,其十进制为,其十进制为165165。v长整数长整数18L18L和基本整常数和

12、基本整常数18 18 在数值是在数值是相等相等的,但编的,但编译系统将为它们分配的存储空间是译系统将为它们分配的存储空间是不同不同的。前者分配的的。前者分配的存储空间为存储空间为4 4字节,后者为字节,后者为2 2字节。因此在运算和输出格字节。因此在运算和输出格式上要予以注意,避免出错。式上要予以注意,避免出错。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.1 2.2.1 整型常量整型常量【例例2-12-1】分析下列整型常量出错的原因。03B2 包含了非八进制数码 125A 无前缀0 x或含有非十进制数码 0 x13H

13、含有非十六进制数码返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.2 2.2.2 实型常量实型常量 实型常量也称为实数或者浮点数。在语言中,实型常量用十进制表示。它有两种形式:十进制小数形式和指数形式。1.1.十进制小数形式十进制小数形式 十进制小数形式由数码0 9、小数点和正负号组成,且允许省略小数点前后的数字,但不能同时省略。例如:0.0,.25,5.789,0.13,5.0,300.,-267.8230等均为合法的实数。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1

14、月月10日日 2.十进制指数形式十进制指数形式十进制指数形式由十进制指数形式由十进制数十进制数(尾数尾数)、)、阶码标志阶码标志“e”或或“E”以及以及阶码阶码(只能为整数,可以带符号)组成。其一般形(只能为整数,可以带符号)组成。其一般形式为式为aEn(a为十进制数,为十进制数,n为十进制整数)其值为为十进制整数)其值为a*10n。如如:2.15E5(等于等于2.15*105)3.127E-2(等于等于3.127*10-2)0.95E7(等于等于0.95*107)-2.8E-2(等于等于-2.8*10-2)以下不是合法的实数:以下不是合法的实数:2345(无小数点无小数点)E-5(阶码标志阶

15、码标志E之前无数字之前无数字)1.2E3.5(阶码不是整数)(阶码不是整数)23.-E3(负号位置不对负号位置不对)12.7E(无阶码无阶码)。2.2.2 2.2.2 实型常量实型常量 返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 一个实数的指数形式可以有多种,但只一个实数的指数形式可以有多种,但只有一种是有一种是规范化规范化的。所谓的。所谓规范化规范化的指数形的指数形式是指在字母式是指在字母“e”e”或或“E”E”之前的小数部之前的小数部分中,小数点左边分中,小数点左边有且只有一位非零有且只有一位非零的数的数字,例如在字,例如

16、在12.34E212.34E2、123.4E1123.4E1和和1.234E31.234E3三个数中,只有第三个数三个数中,只有第三个数1.234E31.234E3是规范化的指数形式,其余两个是规范化的指数形式,其余两个都不是。都不是。2.2.2 2.2.2 实型常量实型常量 返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 3.3.实型常量的类型实型常量的类型 实型常量有单精度型单精度型(float型)、双精度型双精度型(double型)和长双精度型长双精度型(long double型)三种类型。三类实型常量所占的内存字节数及数值

17、范围见下表。数据类型数据类型类型说明符类型说明符数的范围数的范围字节数字节数单精度型float-10-3710384双精度型double-10-307103088长双精度型longdouble-10-4931104932102.2.2 2.2.2 实型常量实型常量 返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 当实型常量无后缀时,被默认为当实型常量无后缀时,被默认为doubledouble类型类型;如果有后缀字符如果有后缀字符F F(或(或f f),),则实型常量为则实型常量为floatfloat类类型,例如,型,例如,0.61

18、8F0.618F(或(或0.618f0.618f);如果有后缀字);如果有后缀字符符L L(或(或l l),则实型常量为),则实型常量为long doublelong double类型。类型。例如,例如,1.414L(1.414L(或或1.414l)1.414l)。2.2.2 2.2.2 实型常量实型常量 返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.3 2.2.3 字符常量字符常量字符常量是用单引号括起来的一个字符,其书写的形式是:字符字符。例如:A、a、?、5等都是合法字符常量。在内存中,每个字符常量都占一个字节,存

19、放的是该字符的ASCII码值(均为整型),因此,C语言规定:一个字符常量也可一个字符常量也可以看成是以看成是“整型常量整型常量”,其值就是,其值就是ASCIIASCII码值码值,故表达式A+32、a-32都是合法的,其值分别等于97和65。相反,对于值在0128之间的整型常量,C语言规定也可以将其看成是一个字符常量,对应的字符就是以该值作为ASCII码值所对应的那个字符。例如,整型常量97、65可以看成是字符常量a和A。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 注意:注意:在在C语言中,字母是区分大小写的,所以语言中,字母是

20、区分大小写的,所以a和和A是不同的字符常量;是不同的字符常量;3和和3属于不同的数据类型。属于不同的数据类型。2.2.4 2.2.4 转义字符常量转义字符常量 转义字符也可以看成是字符常量的另一种表现形式转义字符也可以看成是字符常量的另一种表现形式。它主要。它主要用来表示那些用一般字符不便于表示的控制代码。用来表示那些用一般字符不便于表示的控制代码。广义地讲,广义地讲,语言字符集中的任何一个字符均可用转义字符语言字符集中的任何一个字符均可用转义字符来表示。来表示。在程序中,可根据需要用在程序中,可根据需要用多种多种书写形式来表示同一个书写形式来表示同一个字符。以字符常量字符。以字符常量aa为例

21、,可分别用十进制为例,可分别用十进制(97)(97)、八进制、八进制 (0141)(0141)、十六进制、十六进制(0 x61)(0 x61)、八进制字符常量模式、八进制字符常量模式(141)(141)和十六和十六进制字符常量模式进制字符常量模式(x61)(x61)这些等价形式来表示它的这些等价形式来表示它的ASCIIASCII编码编码值。值。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 常用的转义字符及其含义常用的转义字符及其含义转义字符转义字符等价于等价于代表字符代表字符含义含义fx0cFF换页rx0dCR回车tx09Tab

22、横向跳格vx0bVT纵向跳格nx0aLF换行x5c反斜线x27单引号x22双引号bx08BS退格ax07BEL响铃0 x00NULL空白ddd如101A13位八进制数所代表的字符xhh如x41A12位十六进制数所代表的字符返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 【例例2-22-2】转义字符的使用void main()int x,y,z;x=1;y=2;z=-3;clrscr();printf(12345678901234567890n);printf(%dnt%d%dn%d%dtb%dn,x,y,z,x,y,z);运行结果

23、运行结果返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.5 2.2.5 字符串常量字符串常量 字符串常量简称字符串,是用双引号括起来的零个(空串)或多个字符的序列。字符串常量的书写形式是:字符序列字符序列例如:China,C program,A123$12.5 等都是合法的字符串常量。字符串常量和字符常量是不同的量。它们之间的区别如下:字符常量用单引号括起来,字符串常量用双引号括起来。字符常量只能包含一个字符,字符串常量则可以包含一个或多个字符。可以把一个字符常量赋予一个字符变量,但不能把一个字符串常量赋予一个字符变量。在

24、语言中没有字符串变量,但可以用一个字符数组来存放一个字符串常量。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 一个字符串中所有字符的个数称为该字符串的长度,单位为字节,其中每个转义字符只当作一个字符。例如,abcd、102x42的长度分别为6字节和2字节。字符常量占一个字节的内存空间。字符串常量占的内存字节数等于字符串长度+1。增加的一个字节用于存放字符串的结束标志“0”(ASCII码为0)。例如,a在内存中占一个字节,而a在内存中占二个字节,空串,是仅有一个结束符的字符串,长度为0字节,在内存中占一个字节。注意:在注意:在C

25、C语言中,字符串中的字母也区分语言中,字符串中的字母也区分大小写的,所以大小写的,所以aa和和AA是不同的字符串常是不同的字符串常量。量。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.6 2.2.6 符号常量符号常量在语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量必须先定义,后使用定义,后使用。定义符号常量的一般形式为:#define#define 符号常量名符号常量名 常量常量 其中#define是一条预处理命令(预处理命令都以#开头),称为宏定义命令(在8.1节中详细介绍);符号常量名的命名规则与标

26、识符相同,习惯上符号常量名用大写,后面即将介绍的变量名用小写,以示区别;常量可以是任何类型;该命令的功能是将符号常量名定义为其后的常量值。该定义必须放在程序开头,且每个定义必须独占一行,其后不能跟逗号。例如,#define PI 3.14159 /*#define PI 3.14159 /*定义定义PIPI为符号常量,值为为符号常量,值为3.14159*/3.14159*/返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 v【例例2-32-3】编写计算圆面积的程序。方法方法1:#definePI3.14159main()floats

27、,r;r=5;s=PI*r*r;printf(s=%fn,s);方法方法2:main()floats,r;r=5;s=3.14159*r*r;printf(s=%fn,s);等价等价返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.3 2.3 变量变量2.3.1 2.3.1 变量的数据类型及其定义变量的数据类型及其定义2.3.2 2.3.2 变量的存储类型及其定义变量的存储类型及其定义2.3.3 2.3.3 变量的初始化变量的初始化返回目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月

28、10日日 变量变量是指在程序运行过程中其值可以发生变化是指在程序运行过程中其值可以发生变化的量。变量通常用来保存程序运行过程中的输入数的量。变量通常用来保存程序运行过程中的输入数据、计算获得的中间结果和最终结果。据、计算获得的中间结果和最终结果。变量的命名规则与标识符相同,其中的英文字变量的命名规则与标识符相同,其中的英文字母常用小写。母常用小写。由于由于C C语言编译系统使用的系统变量语言编译系统使用的系统变量名都以下划线(名都以下划线(“_”_”)开头,为了区别,用户定)开头,为了区别,用户定义的变量名一般不要以下划线(义的变量名一般不要以下划线(“_”_”)开头。)开头。返回本节目录C

29、C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 v程序运行时,每个变量都占用着连续程序运行时,每个变量都占用着连续的若干字节存储单元,占用字节数的的若干字节存储单元,占用字节数的多少与其类型密切相关,其中第一个多少与其类型密切相关,其中第一个字节的地址称为变量的地址。字节的地址称为变量的地址。vC C语言规定,程序中变量的地址用语言规定,程序中变量的地址用“&变量名变量名”来表示。来表示。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.3.12.3.1变量的数据类型及其定义变量的

30、数据类型及其定义 C语言中,所有变量必须遵循“先定义,后使用先定义,后使用”的原则。定义变量类型的语句格式如下:数据类型说明符数据类型说明符 变量名变量名1 1,变量名,变量名2 2,变量名,变量名n n;其中,数据类型说明符也称类型名,是关键字。变量名是标识符。例如:vint a,b,c;(a,b,c为整型变量)vlong x,y,z;(x,y,z为长整型变量)vunsigned m,n;(m,n为无符号整型变量)vfloat x1,y1;(x1,y1为单精度型变量)vdouble a1,b1,c1;(a1,b1,c1为双精度型变量)vchar a2,b2;(a2,b2为字符型变量)返回本节

31、目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 定义变量类型时,应注意以下几点:定义变量类型时,应注意以下几点:v对变量的定义可放在函数之外,也可以放在复合语句或函数体中。如果是放在复合语句或函数体中,则必须集中放在最前面。v被定义为整型的变量,若其值在-128127之间,或者被定义为无符号整型的变量,其值在0255之间,都可以当作字符型变量使用。v被定义为字符型的变量,若当作整型变量使用时,其值将在-128127之间;当作无符号整型变量使用时,其值将在0255之间。vC语言中的字符串只能是常量,没有字符串变量。返回本节目录C C语言程序

32、设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.3.22.3.2变量的存储类型及其定义变量的存储类型及其定义 C C语言中,每个变量和函数都有两个属性:语言中,每个变量和函数都有两个属性:数据的数据的类型属性类型属性和和存储类别属性存储类别属性。v数据的类型属性类型属性如整型、实型等,它规定了数据在变量中的组织形式和所需内存空间的字节数。v存储类别属性存储类别属性规定了变量的存储方式和存储位置(内存或寄存器)。v内存中供用户使用的存储空间可划分为程序区程序区和数据区数据区,数据区又可划分为静态存储区静态存储区和动动态存储区态存储区两部分。返回本节目录C

33、 C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 存储方式有静态和动态两种,静态存储静态存储方式是指在程序运行期间分配固定的存储空间的方式,而动态存储方式动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。用静态方式存储的变量称为静态变量静态变量;用动态方式存储的变量称为动态变量动态变量。系统总是将没有赋初值的静态变量初始化0,而不将动态变量初始化。因此,如果动态变量未赋初值,则其值是不确定的。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 定义变量存储类型的语句格式

34、如下:存储类别说明符存储类别说明符 数据类型说明符数据类型说明符 变量名变量名1 1,变,变量名量名2 2,变量名,变量名n n;存储类别说明符有auto(auto(自动自动)、register(register(寄存寄存器器)、extern(extern(外部外部)和 static(static(静态静态)等四种,详细介绍见7.7节。自动变量和寄存器变量自动变量和寄存器变量属于属于动态动态存储方式,存储方式,外部变量和静态变量外部变量和静态变量属于属于静态静态存储方式。存储方式。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2

35、.3.3 2.3.3 变量的初始化变量的初始化在定义变量的同时给变量赋以初值就称为变量的初始化,这是为变量赋初值的第一种方法。第二种方法是在声明部分先定义先定义变量类型,在执行部分再再为变量赋值赋值。变量的初始化方法很简单,只需再定义变量的语句中,变量名后跟一个等号和初值即可。初值可以是常量或常量表达式。格式如下:存储类别说明符存储类别说明符 数据类型说明符数据类型说明符 变量名变量名1=1=初初值值11,变量名,变量名2=2=初值初值22,内的初值为可选项。可见,可以对同类型的全部或部分变量进行初始化。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/202

36、3年年1月月10日日 下列两组语句在完成对变量的赋值上,功能是相同的。下列两组语句在完成对变量的赋值上,功能是相同的。int a=10,b=-1;/*int a=10,b=-1;/*指定指定a a和和b b为整型变量,初值分别为为整型变量,初值分别为1010和和-1*/-1*/loatloat pi=3.1415926;/*pi=3.1415926;/*指定指定pipi为实型变量,初值为为实型变量,初值为3.1415926*/3.1415926*/等价于等价于inta,b;/*指定指定a和和b为整型变量为整型变量*/loatpi;/*指定指定pi为实型变量为实型变量*/a=10;b=-1;pi

37、=3.1415926;/*为各个变量赋值为各个变量赋值*/返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 进行变量初始化时要注意下列几点:v如果想将几个变量初始化成相同的值0,不能写成:int int x=y=z=0 x=y=z=0;,而应该写成:int x=0,y=0,z=0;或int x,y,z=x=y=0;。vextern(外部)变量不允许初始化。auto(自动)、register(寄存器)、和 static(静态)变量都可以进行初始化。vauto(自动)和register(寄存器)变量的初始化在程序的运行阶段完成,如果未进

38、行初始化或在执行部分对变量未赋值,变量的值将不确定。vstatic(静态)变量的初始化在程序的编译阶段完成,如果在定义静态局部变量时未赋初值,则编译系统自动赋初值0(对数值型变量)或空字符(对字符变量),且在在程序的运行过程中不释放。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.4 2.4 变量赋值及数据类型转换变量赋值及数据类型转换当表达式中参与运算的变量、常量的数据类型数据类型不相同不相同时,C语言规定先进行类型转换,使相关变量、常量的类型相同,然后再进行运算处理;当表达式值的类型和变量的类型不一致时,也存在类型转换问题

39、,此时,值的类型向变量的类型看齐。C C语言允许几乎所有的类型转换语言允许几乎所有的类型转换。转换的方法有两种,一种是自动转换,一种是强制转换。返回目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.4.12.4.1自动转换自动转换自动转换也称隐式类型转换,这种转换发生在不同数据类型的数据混合运算的情况下,由编译系统自动完成。自动转换有如下两条原则:参加运算的各个数据都转换成优先级最高的参加运算的各个数据都转换成优先级最高的数据类型,然后计算。计算结果值的类型当数据类型,然后计算。计算结果值的类型当然就是优先级最高的数据类型。然就是优先级

40、最高的数据类型。确定优先级的原则是:在内存中占用的字节确定优先级的原则是:在内存中占用的字节数越大,优先级越高,反之越低。数越大,优先级越高,反之越低。1.1.表达式计算中数据类型的自动转换原则表达式计算中数据类型的自动转换原则C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 注意:注意:注意:注意:横向向左横向向左的空心箭头表示的空心箭头表示必定的转换;向必定的转换;向上的实心箭头表上的实心箭头表示需要时的转换,示需要时的转换,即当参加运算的即当参加运算的数据类型不同时,数据类型不同时,需要将优先级低需要将优先级低的数据的类型转的数据的类型转

41、换成优先级高的换成优先级高的数据的类型。数据的类型。C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.结果存入变量时数据类型的自动转换原则结果存入变量时数据类型的自动转换原则v先将运算结果的类型转换为变量的数据类型,先将运算结果的类型转换为变量的数据类型,然后再赋予变量,即值的类型向变量的类型看齐。然后再赋予变量,即值的类型向变量的类型看齐。v例如,运算结果为单精度,而要赋予的变量为例如,运算结果为单精度,而要赋予的变量为双精度,则先将结果自动转化为双精度后再赋予双精度,则先将结果自动转化为双精度后再赋予双精度变量。双精度变量。C C语

42、言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.4.22.4.2强制转换强制转换强制转换也称显式类型转换,这种转换是对需要进行类型转换的表达式,在其前面加上圆括号括起来的数据类型符(称之为数据强制类型转换运算符),格式如下:(类型说明符类型说明符)()(表达式表达式)C语言先按自动转换原则计算表达式的值,然后将其转换成指定的数据类型。C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 【例例2-42-4】类型强制转换举例。(float)a 把a转换为实型,省略了a外面的括号。(int)(x+y)把x

43、+y的结果转换为整型,括号不能省略,否则如写成(int)x+y,则表示把x转换成int型之后再与y相加。C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 进行类型转换时的注意事项进行类型转换时的注意事项类型转换会占用系统时间占用系统时间,过多的类型转换将降低降低程序的执行效率执行效率。不管是强制转换还是自动转换,当把长度长(优先级高)的结果存入长度短(优先级低)的变量中,将截去超长的部分而有可能导致精度降低精度降低。【例例2-5】main()floatpi=3.14159;ints,r=10;s=r*r*pi;printf(s=%dn,s);C

44、 C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 无论是强制转换还是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性临时性转换,这种转换并不改变数据说明时对该变量定义的类型和变量的值。【例例2-6】main()floatf=15.85;printf(int)f=%d,f=%fn,(int)f,f);本例表明,本例表明,f虽被强制转为虽被强制转为int型,但只在运算中起型,但只在运算中起作用,是临时的,而作用,是临时的,而f本身的类型并不改变。本身的类型并不改变。C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:

45、/2023年年1月月10日日 2.5 2.5 运算符与表达式运算符与表达式2.5.1 C语言的运算符简介2.5.2 算术运算符与算术表达式2.5.3 赋值运算符与赋值表达式2.5.4 逗号运算符和逗号表达式2.5.5 长度运算符返回目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.5.1 C2.5.1 C语言的运算符简介语言的运算符简介C语言的运算符按其在表达式中连接对象的多少可分为单目、双目和三目三种,各自所包含的运算符如下:单目运算符:单目运算符:正号+、负号、加1运算+、减1运算-、取地址&、间接存取*、按位取反、逻辑非!、强制类

46、型、求尺寸sizeof;双目运算符:双目运算符:加+、减-、除/、求余%、乘*、左移、小于、小于等于=、大于等于=、是否等于=、不等于!=、按位加、按位与&、按位或|、逻辑与&、逻辑或|;三目运算符:三目运算符:条件(也称问号运算符)?:;返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 按其作用可划分为如图按其作用可划分为如图2-52-5所示的分类情况。所示的分类情况。在所有运算符中,少数运算符具有双重含义,在所有运算符中,少数运算符具有双重含义,使用时要注意区分,主要有:使用时要注意区分,主要有:图2-5 C语言运算符“+”+”

47、号。号。在算术运算中,既表示单目的取正运算,也表示双目的加法运算,在指针运算中表示双目的加法运算。“”号。号。在算术运算中,既表示单目的取负运算,也表示双目的减法运算,在指针运算中表示双目的减法运算。“*”“*”号。号。在算术运算中,表示双目的乘法运算,在指针运算中表示指针变量指向的变量。“&”&”号。号。在位逻辑运算中表示双目与运算,在指针运算中表示取地址的运算。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.5.2 2.5.2 算术运算符与算术表达式算术运算符与算术表达式算术运算符用来实现C语言中的算术运算,分为基本算术运

48、算符和增1、减1运算符两类。1.1.基本算术运算基本算术运算 基本算术运算符包括加(+)、减()、乘(*)、除(/)和求余(或称模运算,%)。其运算规则与算术中的基本相同,但要注意以下几点区别:除法运算符除法运算符“/”/”。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。例如,3/5的结果等于0,而11/3的结果等于3。求余运算符求余运算符(模运算符模运算符)“%”)“%”。要求参与运算的量均为整型。如果3.0%5则会产生一个编译时错误,因为3.0是实数类型的数据,对实数求模运算是无意义的。求余运算的结果等于两数相除后的余数,结果的符号与被除数相同

49、。返回本节目录C C语言程序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 对象数对象数名称名称运算符运算符运算规则运算规则运算对运算对象类型象类型运算结运算结果类型果类型结合性结合性单目单目正正+取原值取原值整型或整型或实型实型整型或整型或实型实型右结合右结合负负-取负值取负值双目双目加加+加法加法左结合左结合减减-减法减法乘乘*乘法乘法除除/除法除法模模%整除取余整除取余整型整型整型整型基本算术运算符的运算对象、规则、结合性基本算术运算符的运算对象、规则、结合性2.5.2 2.5.2 算术运算符与算术表达式算术运算符与算术表达式返回本节目录C C语言程

50、序设计语言程序设计 机械工业出版社机械工业出版社http:/2023年年1月月10日日 2.2.增增1 1和减和减1 1运算符运算符 增增1 1减减1 1运算符运算符的作用是使变量的值增的作用是使变量的值增1 1或减或减1 1。用增。用增1 1减减1 1运算符构成表达式时,运算符可以放在运算对象运算符构成表达式时,运算符可以放在运算对象的前面的前面(称前缀称前缀)或后面或后面(或后缀或后缀)前缀和后缀的功能略前缀和后缀的功能略有不同。有不同。v增增1(1(或减或减1)1)运算符作为前缀使用时,首先对运算对象运算符作为前缀使用时,首先对运算对象加加1(1(或减或减1)1),然后再使用加,然后再使

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁