C语言程序设计第三章课件.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.5 字符型数据 (Cont.) 字符串常量 用双引号括起来的字符序列。 如:”abcde”, ”china” 字符串中每个字符各占一个字节,并且在字符串结尾加上一个结束标记’\0’ 双引号不是字符串的一部分,只用于限定字符串 C语言中专门的字符串变量,可用字符数组存放(以后介绍)。 ”a”也属字符串。 注意”a”与’a’的区别。 对于: char c; c=”a”; /*用法错误*/ 如:”china”在内存中占6个字节。 c h i n a \0 “”为空字符串 3.5 字符型数据 (Cont.) 字符串”ab\0123\\098”所占字节数为______ A. 6 B. 7 C. 8 D. 9 a b \012 3 \\ 0 9 8 \0 D 3.6 变量赋初值 在定义变量的同时给相应的变量赋初值。 如: int a=3; float b=5.2; char c=’a’; 效果: 在给变量分配内存单元的同时在相应的单元中存放初值。 3.6 变量赋初值 可以使被定义的变量的一部分赋初值 如: int a,b,c=5; /* 表示指定a,b,c为整型变量, 但只对c初始化, c的初值为5 */ 如果对几个变量赋以同一个初值 应写成:int a=3,b=3,c=3; /* 表示a,b,c的初值都是3 */ 不能写成: int a=b=c3; 3.7 各数值型数据间的混合运算 整型、实型、字符型数据间可以进行混合运算,如: 10-’a’*1.5 运算时, 参加运算的两个数据如果类型不同, 则首先将其类型转换成一致再运算,转换规则是: 将优先级低的类型转换到优先级高的类型 -135.500000 3.7 各数值型数据间的混合运算 (Cont.) 数据类型的优先级 高 double float long unsigned 低 int char 3.8 算术运算符与算术表达式 基本的算术运算符: + - * / % 加、减、乘、除、求余运算 四则混合运算中,先算乘除,后算加减 按从左向右的顺序计算,左结合 %运算符不能用于float和double类型数据 算术表达式: 用算术运算符将运算对象连接起来的式子,用于表达数学公式的式子。如:2*x+y-1/a 表达式经过运算最终得到一个值: 算术表达式的值 3.8 算术运算符与算术表达式(Cont.) 运算符的优先级 优先级: 在对表达式求值时,如果存在多个运算符,则运算的先后次序按运算符的优先级别从高到底进行。 运算符的优先级关系为: 高:* / % (二元运算符) 低:+ - (二元运算符) 若+, -表示一元运算符时, 即正号与负号, 则高于*, /, %. 如: a-2*x 先算 * 2*(a+2) 有括号的情况? 3.8 算术运算符与算术表达式(Cont.) 运算符的结合性 如果在一个运算对象两边的运算符的优先级相同,则按规定的“结合方向”处理。 如:a-b+c b与-结合是从左到右,称“左结合性”。 b与+结合是从右到左,称“右结合性”。 每个运算符都有相应的优先级和结合性。 基本算术运算符都是左结合性。 3.8 算术运算符与算术表达式(Cont.) 例:计算表达式 2+’A’-1/2.0 1+3/2-1 例:构造表达式 2*x*x+3*x-1 注:’*’不能省略 a+b/a-b ?? (a+b)/(a-b) ((a+b)/(a-b))/((x+y)/(x-y)) 3.9 类型转换 在进行赋值操作时,会发生类型转换 将取值范围小的类型转为取值范围大的类型是安全的 反之是不安全的 如果大类型的值在小类型能容纳的范围之内,则平安无事 但是,浮点数转为整数,会丢失小数部分,非四舍五入 反之,转换后的结果必然是错误的,具体结果与机器和实现方式有关。避免如此使用 3.9 类型转换 (Cont.) 自动类型转换 同种数据类型的运算结果,还是该类型 不同种数据类型的运算结果,是两种类型中取值范围更大的那种 long double double float long int short char 把数据赋值给另外一种类型变量也会发生自动类型转换 从小到大, 顺利转换 从大到小, 可能丢失信息(好的编译器会发出警告) 3.9 类型转换 (Cont.) 强制类型转换(Casting) 消除从

文档评论(0)

xiangxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档