悟自彩像舀 实侧O 数据类型转换 实例说明 本例旨在介绍数据的类型转换。C语言规定,不同类型的数据需要转换成同一类型后才可 进行计算,在整型、实型和字符型数据之间通过类型转换便可以进行混合运算。除了上述内容, 我们还要介绍一些常用算术运算符的优先级与结合性,希望读者能够熟记。 注意点:并非所有类型的数据之间都可以进行转换,例如,指针和上述三种类型数据之间 不能够进行类型换算。 y 知识要点 当混合不同类型的变量进行计算时,便可能会发生类型转换 相同类型的数据在转换时有规则可循,如字符必定先转换为整数(C语言规定字符类型数 据和整数数据之间可以通用),shot型转为int型(同属于整型),foat型数据在运算时一律转 换为双精度( double)型,以提高运算精度(同属于实型)。 不同类型的数据发生转换时,遵循低级类型向高级类型转换的原则,例如int型数据与 double型数据进行运算时,是先将int型数据转换成 double类型然后再进行运算结果为 double 类型。 此外,在一个赋值语句中,若发生类型转换,则是赋值语句右部(表达式一侧)的值转换 成左部(目标一侧)的类型 程序源码 该应用程序的源代码如下: t include <stdio. h> void main() //定义变量井赋初值 int char c -'a' float f= 5.3 double m-12. 65: double resulti 4:b
第一篇基嵫知织蒿 //同类型数据间进行运算并输出结果 printf printf(a +c=%c\n",a+ c) printf("f+ m &f\n",f+ m)i //不同类型数据间进行运算并输出结果 printf("a+m- Sfin", a+ m)i printf("c+f-8fin",c+f) //将上述四个变量进行混合运算,并输出结果 printf("double sf\n", result); 程序分析) 程序中分别定义了一个整型数据a,一个字符型数据c,以及两个实型数据f和m。 当整型数据和字符型数据进行运算时,结果会随输出格式说明的不同而不同,当结果以整 型输出格式“%d”输出时,结果为整数,若以字符型输出格式“%c”输出时,结果为字符。 当整型数据和双精度型数据进行运算时,C先将整型数据转换成双精度型数据,再进行运 算,结果为双精度类型的数据。同样,当字符型数据和实型数据进行运算时,C先将字符型数 据转换成实型数据,然后进行计算,结果为实型数据。 在表达式求解时,按运算符的优先级别的高低次序执行,例如先乘除后加减。若在一个运 算对象两侧的运算符的优先级别相同,那么按照“自左向右”的方向进行结合,但若在表达式 中存在括号,则括号中运算的优先级别最高,最先被执行,所以程序中算式a+c·(f+m)的 运算次序为,先执行(+m)中的运算,然后将其结果与c相乘,最后同a相加。 请注意,代码行中的“=”是赋值运算符,不属于算术运算符。赋值运算符的结合性是按 照“自右向左”的规则执行的。因此,在代码行resu=a+c*(f+m)中,是先得出算式a+e *(f+m)的结果,而后再将此结果赋给双精度变量 result
毛彩程百 2}转义字符 实例说明 C中的字符常量是用单引号括起来的一个字符。此外C还允许一种特殊形式的字符常量, 就是以一个开头的字符序列,通常称它们为转义字符。 鉴于转义字符的特殊性,在此有必要作出介绍。在实例当中会看到一些常用的转义字符, 如换行符、回车符等。通过对例题的学习,希望读者能够理解这些常用转义字符的含义,并能 够在今后的编程中熟练使用它们。 知识要点 转义字符是C语言中表示字符的一种特殊形式 通常使用转义字符表示ASCⅡ码字符集中不可打印的控制字符和特定功能的字符,如用 于表示字符常量的单撤号("),用于表示字符串常量的双撤号(")以及反斜杠(1)等。转义 字符用反斜杠()后面跟一个字符或一个八进制或十六进制数表示。 字符常量中使用单引号和反斜杠以及字符常量中使用双引号和反斜杠时都必须使用转义 字符表示,即在这些字符前加上反斜杠。 使用转义字符时需要注意以下三点问题: (1)转义字符中只能使用小写字母,每个转义字符只能看作一个字符 (2)w垂直制表和f换页符对屏幕没有任何影响,但会影响打印机执行响应操作。 (3)在C程序中,使用不可打印字符时,通常用转义字符表示。 程序源码 该应用程序的源代码如下: include <stdio. h>3 void maino /换行符\n,用于输出换行 printf("How are you? \n") printf(" r am fine.nn” /横向跳格符"\t',使跳到下一个输出区
第一蔫磁如似蔫 printf("How are you?\t")i printf("I an fine. \n\n")i //退格符"\b',使当前的输出位置退一格,即输出的起始位置左移一位 printf(” How are printf(”\ bI am fine,lnln”) /回车符\x',使当前输出位置回到本行开头 printf(” I an fine,"};//I前面共有16个空格 printf("\rHow are you? \n\n")i /多个转义字符的混合运用 printf("note: \n a s\ti\b\bk\rp\n")i 程序分析 程序中共有五个输出模块,前四个输出模块都只用到了一个转义字符,不难得出结果。在 第五个输出模块中,综合用到了前四个输出模块中的转义字符,在此,我们将重点分析第五个 输出模块。 prit函数先在当前行输出“note:”,然后换行。程序的输出位置跳到第二行后,首先从左 端开始输出“as”(注意,在字符a的左右两边各有一个空格),然后遇到“t”,它的作用是 跳格,即跳到下一个输出位置,在我们所用的输出系统中,一个输出区占8列(即8个空格) 则下一输出位置从第9列开始,所以在第9列上输出“i”。下面遇到两个“b”,“协b”的作用 是退一格,因此,“b”的作用是使当前输出位置(第十列)退回到第8列输出“k”。最后, 遇到“r”,它代表回车(不换行),此时输出返回到本行的最左端(第一列),输出字符“p" 所以第五个输出模块的最终输出是 note pa s ki
言程围 3}关系和逻辑运算 实例说明 这是一个介绍关系运算和逻辑运算的C程序实例。程序向读者介绍了所有的六种关系运 算符和三种逻辑运算符,以及它们的优先级次序,旨在使读者通过此例能够熟练掌握它们,并 能够对它们进行简单运用 此外,本例还要让读者确立这样一种概念,那就是真(mue)和假(flse)的思维是关系 和逻辑操作符概念的基础。在C中,te代表非零值,flse代表零值。使用逻辑或关系操作 符的表达式返回零作为假值,返回1作为真值。 43, 知识要点 关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻 辑”二字指的是连接关系的方式。因为关系和逻辑运算符常在一起使用,所以在此将它们放在 起讨论。 下面列出的是关系和逻辑操作符的相对优先级: 最高! & 最低l 需要注意的是,除运算符“!”之外,所有关系和逻辑操作符的优先级都低子算术操作符, 也就是说,当算式中同时有算术操作符、关系和逻辑操作符(“!”除外)时,是在执行完所有 的算术运算后,才开始执行关系和逻辑运算。 此外,同算术表达式一样,在关系或逻辑表达式中也可使用括号来修改原来的计算顺序。 程序源码 该应用程序的源代码如下 g include <stdio. h> void main ()