C语言课件(第3章数据类型).ppt_第1页
C语言课件(第3章数据类型).ppt_第2页
C语言课件(第3章数据类型).ppt_第3页
C语言课件(第3章数据类型).ppt_第4页
C语言课件(第3章数据类型).ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 数据类型,C程序设计,一个简单的C程序例子,# include main() int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %dn”,sum); ,C程序常见符号分类,关键字(Keyword)P365 又称为保留字,C语言中预先规定的具有固定含义的一些单词,如整型int等 标识符(Identifier) 系统预定义标识符,main,printf 等 用户自定义标识符,Add, x, y 等 运算符(Operator) 34种,详见附录C (P365),分隔符(Separator) 空格、回车/换行、逗号、#号等 其它符号 大花括号“”和“”通常用于标识函数体或者一个语句块 “/*”和“*/”是程序注释所需的定界符 数据(Data) 变量(Variable):值可以改变的数据 常量(Constant):值一直保持不变的数据,数据类型(Data Type),数据为什么要区分类型? 便于对它们按不同的方式和要求进行处理 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类 ,C的数据类型,类型,构造类型,指针类型,空类型(无值类型) void,基本数据类型,类型,符号,关键字,数的表示范围,所占位数,整型,字符型,实型,有,无,16,unsigned,065535,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,TC中int的范围是-3276832767 如果我们给它一个小于-32768或者大于32767的数会如何呢? 结果:系统提示overflow(溢出),小蛇能吞下大象吗?,超出取值范围会怎样?,一台安装了Windows 95/98的机器,如果连续运行49.7天没有重新启动,可能死机 原因: Windows启动时,有一个计数器,记录系统已经运行了多少毫秒。这个计数器是个unsigned long 类型的变量 unsigned long 的最大值是:4294967295 一天有 24*60*60*1000 = 86400000毫秒 4294967295 / 86400000 = 49.71026961805 当49.7天的时候,此计数器会溢出,引起死机,溢出(Overflow)造成的危害,如何选择恰当的数据类型?,预先估算运算结果的可能范围,采用取值范围更大的类型。 1+2+3+ 1!+2!+3!+ 13+23+33+ 如果不需要处理负数,则采用无符号类型。 在运算还没开始之前就判断运算数是否在合理的取值范围内。如果超出,则停止运算,转错误处理。,定义:用来标识变量、常量等的字符序列 命名规则: (1) 只能由字母、数字、下划线组成,且 第一个字符必须是字母或下划线 (2) 不能使用关键字 (3) 长度最长32个字符 (4) 区分大小写,例:判断下列不合法标识符号 sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _above $123,标识符,M.D.John,3days,#33,char,ab,$123,常量(constant),定义:在程序运行过程中,其值不能被改变 的量称为常量 分类:可分为数值常量和符号常量 类型:可为整型、实型、字符型等 命名:符合标识符命名规则,数值常量(常数),整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 a, b,2 转义字符: 特殊字符如n (P48) 例 printf(“How are you?“); printf(“How are you?“); 字符串 “a”, “ab”,”1232”,符号常量(宏常量),一般采用全大写字母表示 语法:#define 标识符 数值常量 不能在程序中再次赋值 是一种编译预处理命令称之为宏替换 优点:比数值常量可读性好、修改容易 例: 计算圆的周长,变量,定义:在程序运行中,其值可以改变的量 类型:可为整型、实型、字符型(见表) 命名:符合标识符命名规则 语法:数据类型 变量1,变量2,变量n; 例:int a; float a,b,c; 变量初始化:定义时赋初值 例:int a=2,b,c=4; float data=3.67; char ch=A; int x=1,y=1,z=1;int x=y=z=1; X,变量(续),变量的存储:,int a=1, b=-3,c;,变量(续),变量的使用:先定义,后使用 例:int student; stadent=19; /为变量赋值 /Undefined symbol statent in function main 变量定义的位置:一般放在函数开头 main() int a,b=2; a=1; float data=3; printf(“data=%fn”,data); ,C运算符,的运算符有以下几类: (1)算术运算符 (+ - * / %) (2)关系运算符 (!) (3)逻辑运算符 (!|) (4)位运算符 ( |) (5)赋值运算符 (及其扩展赋值运算符) (6)条件运算符 (?:) (7)逗号运算符 (,),算术运算符, (加法运算符,如:、) (减法运算符,如:、) * (乘法运算符。如:*) (除法运算符。如:) (模运算符,或称求余运算符,两 侧均为整型数据,如:值为)。,算术表达式,定义:用算术运算符和括号将操作数连接起来的、符合语法规则的式子,称为算术表达式。操作数包括常量、变量、函数等。 例:*(.5)a 优先级别:P365 附录C 同一级别结合方向为“自左至右” 。 例:5+8%3*2,关系运算符,,=,=,=,!= 大于,大于等于,小于,小于等于,等于,不等于 关系运算符运算出的结果为0和非0 0,表示假,即该关系不成立 非0,表示真,即该关系成立 绝大多数编译器,关系运算得到的非0结果为1,逻辑运算符,逻辑运算也被称为布尔(Boolean)运算 与运算& a & b当且仅当两者都为真,则结果为真 ( a b & b c);a大于b,并且b大于c 或运算| a | b只要两者中有一个为真,结果就为真 ( a b | b c); a大于b,或者b大于c 求反! ( !a );若a是0,结果非0;若a是非0,结果是0 并不改变a的值,实例,ch是英文大写字母 (ch = A) & (ch = Z) 判断某一年year是否是闰年的条件是满足下列两个条件之一: 能被4整除,但不能被100整除; 能被400整除; (year % 4 = 0) & (year % 100 != 0) | (year % 400 = 0),位运算(汇编操作),与&:每位进行逻辑与。2&3 或 |:每位进行逻辑与。3|5 异或:对应位相同为0,不同为1。071052 取反 :每一位取反。025 左移:低位舍弃,高位补符号位。-82 注:移位左边表达式的值(-8和2)本身并不改变,自动类型转换,同种数据类型的运算结果,还是该类型 不同种数据类型的运算结果,是两种类型中 精度更高的那种 long double double float long int short char,强制类型转换,可利用强制类型转换运算符将一个表达式 转换成所需类型。 一般形式:(所需类型名)(表达式) 例如 (double) 将转换成double类型 (int)(x+y) 将x+y的值转换成整型 (float)(5%3) 将5%3值转换成float型,实例,#include main() int m = 5; printf(“m / 2=%dn“, m/2); printf(“(float)(m/2) = %fn“, (float)(m/2); printf(“(float)m/2 = %fn“, (float)m/2); ,m/2 = 2 (float)(m/2) = 2.000000 (float)m/2 = 2.50000,两个整数运算的结果还 是整数,不是浮点数,赋值运算符号:“” 其作用是将一数据赋给一个变量。 例“” 可以将一个表达式的值赋给一个变量. a=a*2+3 可与+、-、*、/、%、&、|结合 例:a+=2 等价于 a=a+2,赋值运算符,自增、自减运算符,, /在使用之前,先使的值加或减 , /在使用之后,使的值加或减 区别:i;(i=3) / i的值先变成4, 再赋给i,i和j的值均为 i;(i=3) /先将 i值3赋给,值为后,变为 注:只能用于变量,不能用常量或表达式,条件运算符,把a和b中的最大值放入z中 此种表达式切忌用得过于繁杂,逗号运算符,格式:表达式1,表达式2 求解顺序及结果 先求解1,再求解2,结果为表达式2的值 例 a=3*5 , a*4 最终结果为60,Page 31,逗号运算符(续),注:并不是任何地方出现的逗号都是作为逗 号运算符。例如函数参数也是用逗号来 间隔的。 例: printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,%d”,(a,b,c),b,c),“,”不是逗号表达式,是printf的3个参数,“(,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论