C语言讲义之第2章数据的存储与运算.ppt

上传人:牧羊曲112 文档编号:6504316 上传时间:2023-11-07 格式:PPT 页数:32 大小:281.49KB
返回 下载 相关 举报
C语言讲义之第2章数据的存储与运算.ppt_第1页
第1页 / 共32页
C语言讲义之第2章数据的存储与运算.ppt_第2页
第2页 / 共32页
C语言讲义之第2章数据的存储与运算.ppt_第3页
第3页 / 共32页
C语言讲义之第2章数据的存储与运算.ppt_第4页
第4页 / 共32页
C语言讲义之第2章数据的存储与运算.ppt_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《C语言讲义之第2章数据的存储与运算.ppt》由会员分享,可在线阅读,更多相关《C语言讲义之第2章数据的存储与运算.ppt(32页珍藏版)》请在三一办公上搜索。

1、2.1 常量与变量2.2 C语言的数据类型2.3 运算符和表达式,第2章 数据的存储与运算,2.1 常量与变量,数据在算法或者程序中以变量和常量两种形式出现。变量 一个变量对应内存中的一个数据存储单元,变量的值就保存在相对应的内存单元中。由于在程序运行的过程中,这些内存单元中保存的值常常会变化,变量这一名称由此而得。常量(1)普通常量 普通常量是指在算法或者程序中直接出现的具体值。如表达式x=a+12中的12就是一个普通常量。,(2)符号常量例:符号常量的使用。#define PI 3.14#includemain()int r,h,s,v;r=10;h=15;s=2*PI*r*h+2*PI*

2、r*r;v=PI*r*r*h;printf(“s=%d,v=%d“,s,v);,标识符 对变量、符号常量、函数、数组、类型等数据对象有效命名的字符序列称为标识符。简单地说,标识符就是一个名字。C语言对标志符有如下规定:(1)标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。下面列出的是合法的标识符,也是合法的变量名average,_total,student_name,lotus_1_2_3,tan48下面是不合法的标识符和变量名:m.d.John,&123,33,3d64,ab,(2)在C语言中,大写字母和小写字母被认为是两个不同的字符。因此,如果sum和Sum均表

3、示变量名的话,应被视作两个不同的变量。习惯上,在C语言中,变量名使用小写字母表示,字符常量名使用大写字母表示(比如前面例子中的PI),以示两者区别。,2.2 C语言的数据类型,在C语言中,有四种基本数据类型:整数类型实数类型字符类型枚举类型本章主要介绍前3种基本数据类型.,2.2.1 整型数据 整型常量的表示方法 整型常量可用以下三种形式表示:十进制整数。如123,-456,0。(2)八进制整数。以0开头的数是八进制数。如0123表示八进制数123,即十进制数83。-011表示八进制数-11,即十进制数-9。(3)十六进制整数。以0 x开头的数是十六进制数。如0 x123表示十六进制数123,

4、即十进制数291。-0 x12表示十六进制数-12,即十进制数-18。,整型变量1.在C语言中使用变量之前必须先定义该变量,也就是申明该变量的数据类型。C语言中规定有以下三种整型变量:基本整型定义基本整型变量x的语句:int x;(2)短整型定义短整型变量x的语句:short int x;或者short x;(3)长整型定义短整型变量x的语句:long int x;或者long x;,2.整型数据在内存中是以二进制补码的形式存放(1)正整数以及0的补码是该数的二进制形式。10的补码就是它的二进制形式:0000000000001010。(2)负整数的补码是其绝对值的二进制形式各位取反然后加1得到

5、。-10的补码,先将其绝对值10转换为二进制形式:0000000000001010,,3.三种整数类型在默认情况下都可以保存正整数和负整数。为了充分利用整型变量能表示的整数范围,可以将整型变量定义为“无符号”类型。在以上三种类型的定义语句前面加上修饰符unsigned就可以指定是无符号整型变量。如果加上修饰符signed,则指定是有符号整型变量。但是一般都省略signed,因为在既不指定为signed,也不指定为unsigned的情况下,系统默认为有符号(signed)。,有符号(signed)整型变量与无符号(unsigned)整型变量可表示的整数范围是不同的。比如以下两条语句:“int a

6、;”以及“unsigned int b;”定义了两个整型变量a和b,两者可以表示的最大整数如下图所示。,归纳起来,可以定义以下6种整型变量。即:有符号基本整型 signed int 无符号基本整型 unsigned int有符号短整型 signed short int 无符号短整型 unsigned short int有符号长整型 signed long int无符号长整型 unsigned long int 值得一提的是在Visual C+的编译环境下,整型变量大多定义为4个字节的基本整型(int),表示的数值范围是从231到231 1,正负约21亿,处理一般的问题完全够用。,2.2.2 实

7、型数据实型常量的表示方法实数又称浮点数。实数有两种表示形式:(1)十进制小数形式。它由数字和小数点组成(注意必须有小数点)。0.123、123.0、0.0都是十进制小数形式。(2)指数形式。如123e3或123E3都代表123103。但注意字母e(或E)之前必须有数字,且e(或E)后面的指数必须为整数,如e3、2.1e3.5、e等都不是合法的指数形式。,规范化的指数形式一个实数可以有多种指数表示形式。例如123.456可以表示为123.456e0、12.3456e1、1.23456e2、0.123456e3等。把其中的1.23456e2称为“规范化的指数形式”,即在字母e(或e)之前的小数部分

8、中,小数点左边应有一位(且只能有一位)非零的数字。一个实数在用指数形式输出时,是按规范化的指数形式输出的。例如指定将实数5689.65按指数形式输出,必然输出5.68965e+003,而不会是0.568965e+004或56.8965e+002。,实型变量1.实型变量的分类C语言的实型变量分为以下三类:(1)单精度(float型)定义单精度实型变量x的语句:float x;(2)双精度(double型)定义双精度实型变量x的语句:double x;(3)长双精度型(long double)定义长双精度实型变量x的语句:long double x;,2.实型数据在内存中的存放形式 系统把一个实型

9、数据先转换成二进制形式,然后转换成规范化的指数形式,分别存放符号位、指数部分和尾数部分。,3.实型数据的舍入误差 由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的,在有效位以外的数字将被舍去。由此可能会产生一些误差。单精度的实型数据表示的数值范围为10-38至1038,有效数字是7位。双精度的实型数据表示的数值范围为10-308至10308,有效数字是15到16位。,3.2.3 字符型数据,字符常量 由单撇号括起来的字符,如A、a、?、$等。A与a是两个不同的字符常量。还有一类字符常量是控制字符,它们是由“”开头,不能在屏幕上显示,常用于输入输出函数中进行格式控制。计算机系

10、统使用的所有字符见附录A的ASCII码表。,字符变量 所有的编译系统都规定字符变量在内存中是以一个字节来保存,字符数据在内存中是以其ASCII码的二进制形式保存。比如字符a其ASCII码为97,(97)2=01100001,所以a在内存中的保存形式为“01100001”。字符变量的定义形式如下:char a;,3.3 运算符和表达式,3.8.1 C运算符简介 C语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,例如将赋值符“=”作为赋值运算符,方括号作为下标运算符等。c的运算符有以下几类:1算术运算符(+-*/%)2关系运算符(=!=)3逻辑运算符(!&|

11、)4位运算符(|&)5赋值运算符(=及其扩展赋值运算符),6条件运算符(?:)7逗号运算符(,)8指针运算符(*和&)9求字节数运算符(s i z e o f)10强制类型转换运算符(类型)11分量运算符(-)12下标运算符()13其他(如函数调用运算符()本章只介绍算术运算符和赋值运算符,在以后各章中结合有关内容将陆续介绍其他运算符。,基本的算术运算符(1)+(加法运算符,或正值运算符。如3+5、+3)(2)-(减法运算符,或负值运算符。如5-2、-3)(3)*(乘法运算符。如3*5)(4)/(除法运算符。如5/3)(5)%(模运算符,或称求余运算符,%两侧均应为整型数据,如7%4的值为3)

12、。,需要说明,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。例如,-5/3在有的机器上得到结果-1,有的机器则给出结果-2。多数机器采取“向零取整”的方法,即5/3=1,-5/3=-1,取整后向零靠拢。如果参加+,-,*,/运算的两个数中有一个数为实数,则结果是double型,因为所有实数都按double型进行运算。,强制类型转换运算符 可以利用强制类型转换运算符将一个表达式转换成所需类型。例如:(double)a(将a转换成double类型)(int)(x+y)(将x+y的值转换成整型)(float)(5%3)(将

13、5%3的值转换成float型)其一般形式为(类型名)(表达式)注意,表达式应该用括号括起来。如果写成(int)x+y则只将x转换成整型,然后与y相加。,需要说明的是在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。例如:(int)x(不要写成int(x)如果x原指定为float型,进行强制类型运算后得到一个int型的中间变量,它的值等于x的整数部分,而x的类型不变(仍为float型)。见下例。,自增、自减运算符作用是使变量的值增1或减1,如:+i,-i(在使用i之前,先使i的值加(减)1)i+,i-(在使用i之后,使i的值加(减)1)粗略地看,+i和i+的作用相当于i=i

14、+1。但+i和i+不同之处在于+i是先执行i=i+1后,再使用i的值;而i+是先使用i的值后,再执行i=i+1。如果i的原值等于3,则执行下面的赋值语句:,=+i;(i的值先变成4,再赋给,j的值为4)=i+;(先将 i的值3赋给,的值为3,然后i变为4)又如:i=3;printf(%d,+i);输出“4”。若改为printf(%d,i+);则输出“3”。,复合的赋值运算符 在赋值符“=”之前加上其他运算符,可以构成复合的运算符。如果在“=”前加一个“+”运算符就成了复合运算符“+=”。例如,可以有:a+=3等价于 a=a+3 x*=y+8 等价于 x=x*(y+8)x%=3 等价于 x=x%

15、3 语言规定了10种复合运算符:+=,-=,*=,/=,%=,=,&=,=,|=后5种是有关位运算的,将在以后介绍。,赋值表达式 由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。它的一般形式为:变量=表达式 对赋值表达式求解的过程是:将赋值运算符右侧的“表达式”的值赋给左侧的变量。赋值表达式的值就是被赋值的变量的值。例如,“a=5”这个赋值表达式的值为5(变量a的值也是5)。赋值运算符左侧变量的值称为“左值”,右侧的表达式的值称为“右值”。,上述一般形式的赋值表达式中的“表达式”,又可以是一个赋值表达式。如a=(b=5)括弧内的“b=5”是一个赋值表达式,它的值等于5。“a

16、=(b=5)”相当于“b=5”和“a=b”两个赋值表达式,因此a的值等于5,整个赋值表达式的值也等于5。赋值运算符按照“自右而左”的结合顺序,因此,“b=5”外面的括弧可以不要,即“a=(b=5)”和“a=b=5”等价,都是先求“b=5”的值(得5),然后再赋给a。,下面是赋值表达式的例子:a=b=c=5(赋值表达式值为5,a、b、c值均为5)a=5+(c=6)(表达式值为11,a值为11,c值为6)a=(b=4)+(c=6)(表达式值为10,a值为10,b等于4,c等于6)a=(b=10)/(c=2)(表达式值为5,a等于5,b等于10,c等于2)赋值表达式也可以包含复合的赋值运算符。如:a+=a-=a*a 也是一个赋值表达式。,逗号运算符和逗号表达式 C语言提供一种特殊的运算符逗号运算符。用它将两个表达式连接起来。如:3+5,6+8 称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为:表达式1,表达式2,表达式n 逗号表达式的求解过程是:先求解表达式1,再求解表达式2,最后求表达式n的值。整个逗号表达式的值是表达式n的值。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号