c数据类型及表达式实用实用教案

上传人:新** 文档编号:568591748 上传时间:2024-07-25 格式:PPT 页数:42 大小:1.45MB
返回 下载 相关 举报
c数据类型及表达式实用实用教案_第1页
第1页 / 共42页
c数据类型及表达式实用实用教案_第2页
第2页 / 共42页
c数据类型及表达式实用实用教案_第3页
第3页 / 共42页
c数据类型及表达式实用实用教案_第4页
第4页 / 共42页
c数据类型及表达式实用实用教案_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《c数据类型及表达式实用实用教案》由会员分享,可在线阅读,更多相关《c数据类型及表达式实用实用教案(42页珍藏版)》请在金锄头文库上搜索。

1、1 数据结构(sh j ji u)数据类型基本(jbn)类型构造类型指针(zhzhn)类型整型浮点型字符型无值型基本型int,2Byte长整型long,4Byte短整型short,2Byte无符号整型unsigned,2Byte单精度浮点型float,4Byte双精度浮点型double,8Bytechar,1Bytevoid数组类型结构体类型联合体枚举类型第1页/共41页第一页,共42页。2 C程中数据的表示(biosh)方法八进制整型常量(chngling)十六进制(sh li jn zh)整型常量十进制整型常量小数形式指数形式直接形式八进制形式十六进制形式转义字符整型常量浮点常量字符常量符

2、号常量基本知识定义格式初始化命名存储赋值常量变量C程中数据的表示形式第2页/共41页第二页,共42页。一、常量(chngling)(程序运行过程(guchng)中)其值不发生改变的量1、整型常量(chngling)(即整型常数,有三种表示法)(1)整型常量的表示法八进制整型常量十六进制整型常量十进制整型常量前缀为0,数码07前缀为0x或0X,数码09,af或AF数码中出现字母时字母的大小写应与前缀一致无前缀,数码09第3页/共41页第三页,共42页。一、常量(chngling)(程序运行过程中)其值不发生(fshng)改变的量1、整型常量(chngling)(即整型常数,有三种表示法)(2)对

3、整型常量的说明整型常量的类型整型常量的后缀八、十六进制表示的整型常量的真值值为3276832767 基本整型 065535 无符号整型 32767或32768 长整型L或l 长整型U或u 无符号数第4页/共41页第四页,共42页。一、常量(chngling)(程序运行过程(guchng)中)其值不发生改变的量2、浮点常量(chngling)也称实型常量,C语言中实数用十进制表示,有两种形式(1)小数形式(2)指数形式由小数点和09组成,当整数或小数部分为0时,0可以省略由尾数、阶码标志e或E及阶码组成一般形式:aEn(a为尾数,n为阶码),表示a10n第5页/共41页第五页,共42页。一、常量

4、(chngling)(程序运行过程中)其值不发生(fshng)改变的量3、单字符(z f)常量(1)直接形式(2)八进制形式格式为:ddd,“ddd”表示13位八进制数,其值为某字符对应的ASCII值用单引号括起来的一个字符(3)十六进制形式格式为:xhh,“hh”表示12位十六进制数,其值为某字符对应的ASCII值(4)转义字符是一种特殊的字符常量,以“”开头,后跟一个或几个字符,它具有特定的含义,不同于字符原有意义第6页/共41页第六页,共42页。一、常量(chngling)(程序运行过程(guchng)中)其值不发生改变的量4、字符串常量(chngling)由一对双引号括起来的字符序列,

5、可以无字符,也可只有一个字符字符串常量与单字符常量的区别: 引号引号字符个数字符个数存储存储单字符单字符 只能为单个字符只能为单个字符字符串字符串 可为可为0、1或多个字符或多个字符系统自动加一个字系统自动加一个字符串结束标志符串结束标志“0”第7页/共41页第七页,共42页。一、常量(chngling)(程序运行过程中)其值不发生(fshng)改变的量5、符号(fho)常量用一种标识符代表一个常量符号常量在其作用域内不能改变,也不能再被赋值符号常量用大写一般形式:define 标识符 常量 define PI 3.1415926P39 例4.2第8页/共41页第八页,共42页。二、变量(bi

6、nling)(程序运行过程(guchng)中)其值可以发生改变的量1、变量(binling)的基本知识(1)变量的命名(2)变量的存储一个变量占据一定的存储空间;在确定了变量类型后,就确定了其在内存中所占的字节数每一个变量有且只有一种类型(3)使用变量前应先给出确定值要符合标识符的规定,C语言中用小写字母表示第9页/共41页第九页,共42页。二、变量(binling)(程序运行过程中)其值可以发生(fshng)改变的量2、变量(binling)定义的格式一般形式:修饰符 类型说明符 变量表列;例3、变量的初始化对变量要“先定义,后使用”,在使用之前应有确定的值,也就是要给变量赋值,赋值有两种方

7、法 (1)定义时直接赋值,称为初始化;(声明部分) 修饰符 类型说明符 变量1=值1,变量2=值2,;例 (2)程序执行过程中对变量赋值。(执行部分)例第10页/共41页第十页,共42页。二、变量(binling)(程序运行过程(guchng)中)其值可以发生改变的量4、不同类型变量(binling)的说明(1)整型变量基本型短整型无符号型(2)浮点型变量(3)字符型变量单精度浮点型双精度浮点型第11页/共41页第十一页,共42页。3 运算符及表达式一、C语言运算符概述(i sh)1、概念(ginin)描述各种不同运算的符号称为运算符,参加运算的数据称为运算对象或操作数用运算符和括号将运算对象

8、连接起来的符合C语言语法规则的式子(sh zi)称为C语言表达式C语言运算符不仅具有优先级,而且还有结合性的特性第12页/共41页第十二页,共42页。2、分类(fn li)(1)按运算(yn sun)时操作数的个数(2)按运算(yn sun)符在运算(yn sun)时的作用单目运算符 、双目运算符 、*、/三目运算符 ? :算术运算符、关系、逻辑、位操作、赋值、条件、逗号、指针、求字节数、强制类型转换、成员及括号运算符一、C语言运算符概述第13页/共41页第十三页,共42页。二、算术(sunsh)运算符及其表达式1、算术(sunsh)运算符、*、/、% /:两整数相除结果为整数,“向零取整”

9、%:两个(lin )运算量必须是整型量2、算术表达式用算术运算符和括号运算符将运算对象连接起来的符合C语言规则的式子,称为算术表达式第14页/共41页第十四页,共42页。三、自增自减运算符及含自增自减表达式 自增运算符 i+ 、 +i 自减运算符 i- 、 -i注意:1、自增(减)运算符只能用于变量,而不能用于常量或表达式2、自增(减)运算符均为右结合3、当自增(减)运算符是后缀运算符时,应先使用自增(减)运算符的运算对象(duxing)计算整个表达式的值,在计算自增(减) 例4.44、当自增(减)运算符是前缀运算符时,应先完成自增自减,然后使用运算后的结果计算整个表达式的值 例4.55、当表

10、达式中既有前缀又有后缀自增(减)运算符时,应先计算所有的前缀自增自减运算,再计算整个表达式的值,最后计算所有的后缀自增自减运算 例4.6第15页/共41页第十五页,共42页。四、赋值运算符和赋值表达式1、简单(jindn)的赋值运算符2、复合(fh)的赋值运算符3、赋值表达式= 双目;仅高于逗号运算符;右结合性 将一个数据(shj)赋给一个变量,也可将一个表达式的值赋给一个变量+=、=、*=、/= =、&=、 = 、|=定义:由赋值运算符将一个变量和一个表达式连接起来的式子,称为赋值表达式形式:第16页/共41页第十六页,共42页。五、逗号(duho)运算符和逗号(duho)表达式运算符:“,

11、” 表达式:用逗号运算符将两个表达式连接起来的式子,称为(chn wi)逗号表达式形式:表达式1,表达式2扩展形式:表达式1,表达式2,表达式n第17页/共41页第十七页,共42页。六、位运算(yn sun)运算符 含义(hny) (hny) 运算符 含义(hny) (hny) 按位与 取反 | | 按位或 右移(1)(1)位运算符中除以外,均为双目运算符,即要求两侧(lin c)(lin c)各有一个运算量。(2)(2)运算量只能是整型或字符型的数据,不能为实型数据。第18页/共41页第十八页,共42页。1、按位与运算(yn sun)&运算的含义是对参与按位与运算的两个运算对象(duxing

12、)按二进制方式对对应位进行与运算,当与运算的两个对应位都为1时,运算结果的对应位也为1;否则为0例:-3&5 1111 1111 1111 1101 (-3) & 0000 0000 0000 0101 (5) 0000 0000 0000 0101 (结果(ji gu)为5)第19页/共41页第十九页,共42页。2、按位或运算(yn sun)| 运算的含义是对参与按位或运算的两个运算对象(duxing)按二进制方式对对应位进行或运算,当或运算的两个对应位都为0时,运算结果的对应位也为0;否则为1例:-3|5 1111 1111 1111 1101 (-3) | 0000 0000 0000

13、0101 (5) 1111 1111 1111 1101 (结果(ji gu)为-3)第20页/共41页第二十页,共42页。3、按位异或运算(yn sun)运算的含义是对参与按位异或运算的两个运算对象按二进制方式对对应位进行异或运算,当异或运算的两个对应位不相同(xin tn)时,运算结果的对应位为1时;否则为0例:-35 1111 1111 1111 1101 (-3) 0000 0000 0000 0101 (5) 1111 1111 1111 1000 (结果(ji gu)为-8)第21页/共41页第二十一页,共42页。4、按位取反运算(yn sun)运算的含义是对参与取反运算的运算对象

14、按二进制方式对每一个(y )位求反,如果某位为1,则运算结果的对应位为0时;否则为1。取反为单目运算符例:5 0000 0000 0000 0101 (5) 1111 1111 1111 1010 (结果(ji gu)为-6)第22页/共41页第二十二页,共42页。5、按位左移运算(yn sun)运算的作用(zuyng)是对参与运算的运算对象按规定的位移数进行左移, 运算符的左操作数是需要移位的数据,右操作数是移位的位数,在移位过程中高位移出的位舍弃,低位左移后补0例:53 运算的作用是对参与运算的运算对象按规定的位移数进行右移, 运算符的左操作数是需要移位的数据,右操作数是移位的位数,在移位

15、过程中低位移出的位舍弃(sh q),高位右移后补0或1;如要移位的数据是无符号数则补0,有符号数补符号位的值例:122 0000 0000 0000 1100 (12) 0000 0000 0000 0011 (结果(ji gu)为3)第24页/共41页第二十四页,共42页。4 C语言中的类型转换C语言规定:不同的数据类型(lixng)不能直接进行运算,只有相同类型(lixng)的数据可以。但在描述表达式时,参与运算的对象却可以是不同类型(lixng)的数据,这样在表达式进行运算是就存在类型(lixng)转换的问题。类型转换形式(xngsh)类型(lixng)的自动转换强制的类型转换赋值表达式

16、中的类型转换不同类型数据的混合运算第25页/共41页第二十五页,共42页。一、类型(lixng)的自动转换1、赋值表达式中的类型转换如果赋值运算符两侧的类型不一致,但都是数值型或字符(z f)型时,在赋值时要进行类型转换。(1)实型数据赋给整型变量舍弃(sh q)小数部分(2)整型数据赋给单、双精度变量数值不变,但以浮点数形式存储到变量中第26页/共41页第二十六页,共42页。(3)字符型数据赋给整型变量(字符型数据(shj)只占1个字节,而整型数据(shj)占两个)将字符型数据(shj)(8位)存放到整型变量低8位中,整型变量的高字节的所有位存储的是低字节的“高位扩展”。 若字符最高位为1,

17、则高8位全补1; 若字符最高位为0,则高8位全补0; 称为“符号扩展”一、类型(lixng)的自动转换1、赋值表达式中的类型转换第27页/共41页第二十七页,共42页。(3)字符型数据赋给整型变量一、类型的自动(zdng)转换1、赋值表达式中的类型转换例1 int a;char c1; c1A; ac1;c1a0 1 0 0 00 100 1 0 0 00 1000 0 000 0 0第28页/共41页第二十八页,共42页。(3)字符型数据赋给整型变量一、类型的自动(zdng)转换1、赋值表达式中的类型转换例2 int a; a374;374a1 1 1 1 10 011 1 1 1 10 0

18、11 1 1 1 11 11第29页/共41页第二十九页,共42页。(3)字符型数据赋给整型变量一、类型的自动(zdng)转换1、赋值表达式中的类型转换从例1、2可知: 将ASCII码值为0127的字符型数据赋给整型变量(binling)时,整型变量(binling)得到的值恰好是该字符型数据的ASCII码值; 将ASCII码值为128255的字符型数据赋给整型变量(binling)时,整型变量(binling)得到的值不是该字符型数据的ASCII码值,而为1281。第30页/共41页第三十页,共42页。(4)整型数据赋给字符型变量一、类型的自动(zdng)转换1、赋值表达式中的类型转换只将其

19、低8位原封不动(yun fng b dng)地送到char型变量,即“高位截断”例1 char c1254;1 1 1 1 11 010 0 0 0 00 001 1 1 1 11 01254c1第31页/共41页第三十一页,共42页。(4)整型数据赋给字符型变量一、类型的自动(zdng)转换1、赋值表达式中的类型转换只将其低8位原封不动地送到char型变量,即“高位(o wi)截断”例2 char c1256;0 0 0 0 00 000 0 0 0 00 100 0 0 0 00 00256c1第32页/共41页第三十二页,共42页。(4)整型数据赋给字符型变量一、类型(lixng)的自动

20、转换1、赋值表达式中的类型转换从例1、2可知: 当整型数据的值为0255时,将其赋给字符(z f)变量,字符(z f)型变量的ASCII码值恰好是该整型数据的值; 当整型数据的值为25632767时,将其赋给字符(z f)变量,字符(z f)型变量的ASCII码值恰好是该整型数据的值与256相除后的余数。第33页/共41页第三十三页,共42页。(5)int 型数据赋给long int 型变量一、类型的自动(zdng)转换1、赋值表达式中的类型转换将整型数据的16位存储(cn ch)到长整型变量的低16位中 如int数据为正,则long int变量高16为补0; 如int数据为负,则long i

21、nt变量高16为补1。例 P53第34页/共41页第三十四页,共42页。(6)long int型数据赋给int或unsigned int型变量一、类型的自动(zdng)转换1、赋值表达式中的类型转换高位(o wi)截断 例 P53将unsigned int型数据存放在long int型变量(binling)低16位,高位补0(7) unsigned int型数据long int型变量赋给(8) 相同长度的整型数据赋给相同长度的整型变量原样照赋,但表示的真值可能不同 例 P54 例4.8第35页/共41页第三十五页,共42页。一、类型的自动(zdng)转换1、赋值表达式中的类型转换总结(zngj

22、i):不同类型的整型数据间的赋值归根到底就是按照存储单元中的存储形式直接传送第36页/共41页第三十六页,共42页。一、类型的自动(zdng)转换2、不同类型数据(shj)的混合运算当某一运算符两侧运算对象类型不同时,应进行类型转换,转换依据(yj)为:低类型转为高类型类型的高低取决于该类型数据在内存中占字节数,占字节数少的类型低,反之高第37页/共41页第三十七页,共42页。一、类型的自动(zdng)转换2、不同类型数据(shj)的混合运算例 int a=3; long int b=10; float x=4.2; 求表达式a + a * b - 373 * x的值第38页/共41页第三十八

23、页,共42页。二、强制(qingzh)的类型转换当自动的类型转换不能达到目的式,可使用(shyng)强制的类型转换它是通过类型转换运算来实现的类型转换运算符:(类型符)类型转换表达式的一般形式: (类型符) (表达式)注:在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生改变第39页/共41页第三十九页,共42页。本章(bn zhn)结束作业(zuy):P56 4.1 4.3 4.4 4.5 4.6 4.8第40页/共41页第四十页,共42页。感谢您的欣赏(xnshng)!第41页/共41页第四十一页,共42页。内容(nirng)总结1 数据结构。 。符号常量在其作用域内不能改变,也不能再被赋值。在确定(qudng)了变量类型后,就确定(qudng)了其在内存中所占的字节数。/:两整数相除结果为整数,“向零取整”。三、自增自减运算符及含自增自减表达式。四、赋值运算符和赋值表达式。五、逗号运算符和逗号表达式。(2)运算量只能是整型或字符型的数据,不能为实型数据。例:52。a374。int或unsigned int型变量。第40页/共41页第四十二页,共42页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号