版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1c数据类型及表达式实用§1数据结构数据类型基本类型构造类型指针类型整型浮点型字符型无值型基本型int,2Byte长整型long,4Byte短整型short,2Byte无符号整型unsigned,2Byte单精度浮点型float,4Byte双精度浮点型double,8Bytechar,1Bytevoid数组类型结构体类型联合体枚举类型第1页/共41页§2C程中数据的表示方法八进制整型常量十六进制整型常量十进制整型常量小数形式指数形式直接形式八进制形式十六进制形式转义字符整型常量浮点常量字符常量符号常量基本知识定义格式初始化命名存储赋值常量变量C程中数据的表示形式第2页/共41页一、常量(程序运行过程中)其值不发生改变的量1、整型常量(即整型常数,有三种表示法)(1)整型常量的表示法八进制整型常量十六进制整型常量十进制整型常量前缀为0,数码0~7前缀为0x或0X,数码0~9,a~f或A~F数码中出现字母时字母的大小写应与前缀一致无前缀,数码0~9第3页/共41页一、常量(程序运行过程中)其值不发生改变的量1、整型常量(即整型常数,有三种表示法)(2)对整型常量的说明整型常量的类型整型常量的后缀八、十六进制表示的整型常量的真值值为-32768~+32767基本整型
0~65535无符号整型>32767或<-32768长整型L或l长整型U或u无符号数第4页/共41页一、常量(程序运行过程中)其值不发生改变的量2、浮点常量也称实型常量,C语言中实数用十进制表示,有两种形式(1)小数形式(2)指数形式由小数点和0~9组成,当整数或小数部分为0时,0可以省略由尾数、阶码标志e或E及阶码组成一般形式:aEn(a为尾数,n为阶码),表示a×10n第5页/共41页一、常量(程序运行过程中)其值不发生改变的量3、单字符常量(1)直接形式(2)八进制形式格式为:'\ddd',“ddd”表示1~3位八进制数,其值为某字符对应的ASCII值用单引号括起来的一个字符(3)十六进制形式格式为:'\xhh',“hh”表示1~2位十六进制数,其值为某字符对应的ASCII值(4)转义字符是一种特殊的字符常量,以“\”开头,后跟一个或几个字符,它具有特定的含义,不同于字符原有意义第6页/共41页一、常量(程序运行过程中)其值不发生改变的量4、字符串常量由一对双引号括起来的字符序列,可以无字符,也可只有一个字符字符串常量与单字符常量的区别:引号字符个数存储单字符''只能为单个字符字符串""可为0、1或多个字符系统自动加一个字符串结束标志“\0”第7页/共41页一、常量(程序运行过程中)其值不发生改变的量5、符号常量用一种标识符代表一个常量符号常量在其作用域内不能改变,也不能再被赋值符号常量用大写一般形式:#define标识符常量#definePI3.1415926P39例4.2第8页/共41页二、变量(程序运行过程中)其值可以发生改变的量1、变量的基本知识(1)变量的命名(2)变量的存储一个变量占据一定的存储空间;在确定了变量类型后,就确定了其在内存中所占的字节数每一个变量有且只有一种类型(3)使用变量前应先给出确定值要符合标识符的规定,C语言中用小写字母表示第9页/共41页二、变量(程序运行过程中)其值可以发生改变的量2、变量定义的格式一般形式:[修饰符]类型说明符变量表列;例3、变量的初始化对变量要“先定义,后使用”,在使用之前应有确定的值,也就是要给变量赋值,赋值有两种方法(1)定义时直接赋值,称为初始化;(声明部分)
[修饰符]类型说明符变量1=值1,变量2=值2,……;例(2)程序执行过程中对变量赋值。(执行部分)例第10页/共41页二、变量(程序运行过程中)其值可以发生改变的量4、不同类型变量的说明(1)整型变量基本型短整型无符号型(2)浮点型变量(3)字符型变量单精度浮点型双精度浮点型第11页/共41页§3
运算符及表达式一、C语言运算符概述1、概念描述各种不同运算的符号称为运算符,参加运算的数据称为运算对象或操作数用运算符和括号将运算对象连接起来的符合C语言语法规则的式子称为C语言表达式C语言运算符不仅具有优先级,而且还有结合性的特性第12页/共41页2、分类(1)按运算时操作数的个数(2)按运算符在运算时的作用单目运算符++、--双目运算符+、-、*、/三目运算符?:算术运算符、关系、逻辑、位操作、赋值、条件、逗号、指针、求字节数、强制类型转换、成员及括号运算符一、C语言运算符概述第13页/共41页二、算术运算符及其表达式1、算术运算符+、-、*、/、%/:两整数相除结果为整数,“向零取整”%:两个运算量必须是整型量2、算术表达式用算术运算符和括号运算符将运算对象连接起来的符合C语言规则的式子,称为算术表达式第14页/共41页三、自增自减运算符及含自增自减表达式++自增运算符i++、++i--自减运算符i--、--i注意:1、自增(减)运算符只能用于变量,而不能用于常量或表达式2、自增(减)运算符均为右结合3、当自增(减)运算符是后缀运算符时,应先使用自增(减)运算符的运算对象计算整个表达式的值,在计算自增(减)例4.44、当自增(减)运算符是前缀运算符时,应先完成自增自减,然后使用运算后的结果计算整个表达式的值例4.55、当表达式中既有前缀又有后缀自增(减)运算符时,应先计算所有的前缀自增自减运算,再计算整个表达式的值,最后计算所有的后缀自增自减运算例4.6第15页/共41页四、赋值运算符和赋值表达式1、简单的赋值运算符2、复合的赋值运算符3、赋值表达式=双目;仅高于逗号运算符;右结合性将一个数据赋给一个变量,也可将一个表达式的值赋给一个变量+=、-=、*=、/=<<=、>>=、&=、^=、|=定义:由赋值运算符将一个变量和一个表达式连接起来的式子,称为赋值表达式形式:<变量><赋值运算符><表达式>第16页/共41页五、逗号运算符和逗号表达式运算符:“,”表达式:用逗号运算符将两个表达式连接起来的式子,称为逗号表达式形式:表达式1,表达式2扩展形式:表达式1,表达式2,……,表达式n第17页/共41页六、位运算运算符含义运算符含义
&按位与~取反|按位或<<左移∧按位异或>>右移(1)位运算符中除~以外,均为双目运算符,即要求两侧各有一个运算量。(2)运算量只能是整型或字符型的数据,不能为实型数据。第18页/共41页1、按位与运算&运算的含义是对参与按位与运算的两个运算对象按二进制方式对对应位进行与运算,当与运算的两个对应位都为1时,运算结果的对应位也为1;否则为0例:-3&51111111111111101(-3)&0000000000000101(5)0000000000000101(结果为5)第19页/共41页2、按位或运算|运算的含义是对参与按位或运算的两个运算对象按二进制方式对对应位进行或运算,当或运算的两个对应位都为0时,运算结果的对应位也为0;否则为1例:-3|51111111111111101(-3)|0000000000000101(5)1111111111111101(结果为-3)第20页/共41页3、按位异或运算^运算的含义是对参与按位异或运算的两个运算对象按二进制方式对对应位进行异或运算,当异或运算的两个对应位不相同时,运算结果的对应位为1时;否则为0例:-3^51111111111111101(-3)^0000000000000101(5)1111111111111000(结果为-8)第21页/共41页4、按位取反运算~运算的含义是对参与取反运算的运算对象按二进制方式对每一个位求反,如果某位为1,则运算结果的对应位为0时;否则为1。取反为单目运算符例:~5~0000000000000101(5)1111111111111010(结果为-6)第22页/共41页5、按位左移运算<<运算的作用是对参与运算的运算对象按规定的位移数进行左移,<<运算符的左操作数是需要移位的数据,右操作数是移位的位数,在移位过程中高位移出的位舍弃,低位左移后补0例:5<<3<<0000000000000101(5)0000000000101000(结果为40)第23页/共41页6、按位右移运算>>运算的作用是对参与运算的运算对象按规定的位移数进行右移,>>运算符的左操作数是需要移位的数据,右操作数是移位的位数,在移位过程中低位移出的位舍弃,高位右移后补0或1;如要移位的数据是无符号数则补0,有符号数补符号位的值例:12>>2>>0000000000001100(12)
0000000000000011(结果为3)第24页/共41页§4C语言中的类型转换C语言规定:不同的数据类型不能直接进行运算,只有相同类型的数据可以。但在描述表达式时,参与运算的对象却可以是不同类型的数据,这样在表达式进行运算是就存在类型转换的问题。类型转换形式类型的自动转换强制的类型转换赋值表达式中的类型转换不同类型数据的混合运算第25页/共41页一、类型的自动转换1、赋值表达式中的类型转换如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时要进行类型转换。(1)实型数据赋给整型变量舍弃小数部分(2)整型数据赋给单、双精度变量数值不变,但以浮点数形式存储到变量中第26页/共41页(3)字符型数据赋给整型变量(字符型数据只占1个字节,而整型数据占两个)将字符型数据(8位)存放到整型变量低8位中,整型变量的高字节的所有位存储的是低字节的“高位扩展”。若字符最高位为1,则高8位全补1;若字符最高位为0,则高8位全补0;称为“符号扩展”一、类型的自动转换1、赋值表达式中的类型转换第27页/共41页(3)字符型数据赋给整型变量一、类型的自动转换1、赋值表达式中的类型转换例1inta;charc1;c1=‘A’;a=c1;c1a010000100100001000000000第28页/共41页(3)字符型数据赋给整型变量一、类型的自动转换1、赋值表达式中的类型转换例2inta;a=’\374’;‘\374’a111110011111100111111111第29页/共41页(3)字符型数据赋给整型变量一、类型的自动转换1、赋值表达式中的类型转换从例1、2可知:将ASCII码值为0~127的字符型数据赋给整型变量时,整型变量得到的值恰好是该字符型数据的ASCII码值;将ASCII码值为128~255的字符型数据赋给整型变量时,整型变量得到的值不是该字符型数据的ASCII码值,而为-128~-1。第30页/共41页(4)整型数据赋给字符型变量一、类型的自动转换1、赋值表达式中的类型转换只将其低8位原封不动地送到char型变量,即“高位截断”例1charc1=254;111111010000000011111101254c1第31页/共41页(4)整型数据赋给字符型变量一、类型的自动转换1、赋值表达式中的类型转换只将其低8位原封不动地送到char型变量,即“高位截断”例2charc1=256;000000000000001000000000256c1第32页/共41页(4)整型数据赋给字符型变量一、类型的自动转换1、赋值表达式中的类型转换从例1、2可知:当整型数据的值为0~255时,将其赋给字符变量,字符型变量的ASCII码值恰好是该整型数据的值;当整型数据的值为256~32767时,将其赋给字符变量,字符型变量的ASCII码值恰好是该整型数据的值与256相除后的余数。第33页/共41页(5)int型数据赋给longint型变量一、类型的自动转换1、赋值表达式中的类型转换将整型数据的16位存储到长整型变量的低16位中如int数据为正,则longint变量高16为补0;如int数据为负,则longint变量高16为补1。例P53第34页/共41页(6)longint型数据赋给int或unsignedint型变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东国企安置考试试题及答案
- 船员教育和培训质量-体系的建立与实施
- 跨境电算协同中算力负载跨国绿电消纳与虚拟电厂耦合-基于国际虚拟电厂标准与算力负载绿电虚拟电厂调度协议规范分析
- 跨境电算协同中算力负载跨国绿电插值与电网阻塞管理-基于国际电网运营商协会算力绿电插值与阻塞耦合管理指南规范分析
- 临床项目禁忌症总览2026
- 四川省考题目和答案
- 西藏日喀则地区岗巴县2027届三年级数学第一学期期末监测试题含解析
- 2027届甘肃省张掖市某校六年级数学第一学期期末检测模拟试题含解析
- 山西省运城市夏县2027届数学三上期末学业质量监测试题含解析
- 成本实操-殡葬礼仪公司成本核算SOP
- 普外科围手术期管理
- 2025年新安全员c3证考试题库及答案
- 陪玩俱乐部入股合同范本
- 巨大甲状腺肿切除术的麻醉管理及病例讨论
- CJ/T 184-2012不锈钢衬塑复合管材与管件
- 川大数学拔尖试题及答案
- 成人肠内营养支持的护理课件
- 新能源汽车电气系统检修-配套课件
- Unit 1 Discovering Useful Structures教学设计-2023-2024学年高中英语人教版(2019)必修第三册
- 气象行业职业技能竞赛(公共气象服务)考试题库大全-下(多选、判断题)
- 苏教版四年级上册数学第四单元《统计表和条形统计图(一)》测试卷(含答案解析)
评论
0/150
提交评论