C语言(第三章表达式2).ppt_第1页
C语言(第三章表达式2).ppt_第2页
C语言(第三章表达式2).ppt_第3页
C语言(第三章表达式2).ppt_第4页
C语言(第三章表达式2).ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、3.5.1字符常量字符常量:用一对单引号括起来的字符,如a、a、#、9的说明。 1 .字符常数的值是ASCII代码中字符的代码值(P374 )。 2. a和a是两个不同的字符常量,a 97、A 65 3 .第一个字符串是特殊格式的字符常量(转义字符),3.5字符类型数据,例如称为main () printf (-n )的printf (“- a b-CT-derf tgn”):printf (http ) 运行结果:-fgdehj-k3.5. 2字符变量字符变量:用于存储字符常量。 文字变量的定义形式:例如char c1、c2; /*定义c1、c2是字符类型变量,1字节*/c1=a; c2=b

2、; /*将字符常数a、b存储在c1和c2 */,将字符常数存储在字符变量中,将其ASCII代码值存储在存储器中,其存储形式与整数存储形式相似,因此在整数字符类型数据之间可以通用。 主() char c 1、c2; c1=97; c2=98; 打印机(c2=%c n、c2=%c n、c1、c2); 打印机(c2=%d n、c2=%d n、c1、c2); 运行结果: c1=a、c2=b c1=97、c2=98、3.5.3字符数据在存储器中的存储形式和使用方法、main() char c1、c2; c1=a; c2=b; c1=c1-32; c2=c2-32; 打印机(c2=%cn、c2=%cn、c

3、1、c2); 运行结果: c1=A,c2=B,示例.大小写转换,main() int i; 卡拉c; c=97; i=a; 打印机(% c、%dn、c、c ); 打印机(% c、%dn、I、I ); 运行结果: a、97 a、97在turbo c中,字符数据占1字节,ASCII代码值在128255之间时,其最高位为1,占符号位,用数据输出时为负数,用字符输出时为对应的字符,用无符号数据输出时也是如此字符串常量:用双引号(不论左右)包围的字符串。 示例:关于使用BEIJINGCHINA$123a字符串的说明:字符串显示在输出函数中的示例: printf (This is a C program.

4、 n): 2 .字符常量和字符串常量不同的示例: char c1、c2; c1=a; c2=a; 错误不能为字符类型变量指定字符串。 字符串存储在内存中时,自动添加字符串结尾代码0。 此字符的ASCII代码的代码值为0,并且没有空操作符(即,没有动作),因此不显示。 3.5.4字符串常量,3. C没有字符串变量,可以将字符串分配给字符串数组4 .如果字符串是CHINA,则内存实际存储的格式是6,而不是5,最后一个字符是0,这是系统自动添加的,是人为添加的不显示,不打印,什么都不做。 1 .一边定义一边对变量分配初始值。 例如: int a=3浮点b=3. 1415; 卡尔c=x; 2 .定义变

5、量时,可以对其中的一些变量分配初始值。 例如: int a=3、b、c、d=8; 3 .在将一个常数分配给不同的变量的情况下,优选分别进行。 例如: int a=b=c=3; 应该写成int a=3、b=3、c=3。 4 .初始化在程序执行时执行本函数时给出初始值。 例如: int a=3; 相当于: int a; a=3; 3.6变量的初始值,在c语言中,在整数、实数、字符类型数据之间可以另一方面在不同类型的数据间运算的情况下,在变换为相同类型的过程中,接近低类型高的类型,然后,进行运算。 在不同类型之间变换时,如下图所示,横向左箭头是必须的,纵向箭头表示条件类型变换。 高双浮动长整型低调谐

6、器,短例: 10 a1.58765.1234b,3.7各种数值型数据之间的混合运算,例如t3-7-3. c main ()浮动a双浮动b; a=10 a 1.5 - 8765.1234 * b。 b=10 a 1.5 - 8765.1234 * b。 打印机(b=%f n、b=%f n、a、b ); 运行结果: a=-858873.562500、b=-858873.593200、3.8.1c运算符概要控制语句(if、while、for )和输入输出函数除外。 大多数操作都是由运算符处理的。1 .算术运算符:- *、/、% 2.关系运算符:=、|、a=5; b=3; c=a/b; 打印机(c=%

7、 dn,c ); 运算结果: c=1,例.实际数据除法main () float a,b,c; a=5; b=3; c=a/b; 打印机(“% fn”、c ); 运算结果:1.666667,算术表达式:将运算对象(常数、变量、函数)与算术运算符用括弧连接,符合c语言语法规则的表达式。 例如:在a*b/c-1.5 a语言中,运算符共有15个优先级,其中算术运算符的优先级为: * /、%(3级)、(4级)算术运算符的结合方向:从左到右示例: a-b c从低类型到高类型的转换、2、算术表达式和运算符的优先级和结合性、一般形式: (类型名) (表达式将a转换为双精度(int)(x y ),并将x y的

8、值转换为整数类型(fy ),例如t3-8. c主()浮点x,I。 x=3.6; I等于(x ); 打印(“i=%fn,i=%fn”,x,I ) :运算结果: x=3.600000,I=3. 00000,3,强制类型转换运算符,例如主()浮点a,b,c,d; 英特尔、f; a=5; b=3; c=a/b; 浮动(5%3) :进入(a/3 ) :进入(b3.8) :打印(d=%f、d=%f、e=%d、f=%dn )、c、d、e、f ); 运算结果: c=1.666667、d=2.000000、e=1、f=6思考:在程序执行期间,a、b的值有没有变化?使运算符递增,使变量值递增。 运算符减一,变量值

9、减一。 例如: I,-i :在使用变量I之前,在变量I上加(减) 1。 I,i- :使用变量I后,在变量I的值上加(减) 1。 例子t-.c主() int I,j; i=3; j= i; 打印机(j=%dn,j=%dn,I,j ); 运算结果: i=4、j=4、4、自增、自减运算符,例如main() int i、j; i=3; j=i; 打印机(j=%dn,j=%dn,I,j ); 运算结果: i=4,j=3说明:1.-运算符只能在变量中使用,不能在常数和公式中使用。 a,b -是对的,而5,(x y)-是错的。 2 .-运算符的连接方向从右向左。 例如main() int i; i=3; 打

10、印机(I1=% dn、I ) :打印机(I2=% dn、I ); 运算结果: i1=-3 i2=4例t3-8-5. c主() int I。 i=3; 打印机(I1=% dn、I ) :打印机(I2=% dn、I ); 运算结果: i1=- 4 i2=4,(1)C中的算符和式:式中子式的评价顺序因编译系统而异。 通常先调用f1()然后调用f2(),如表达式: a=f1() f2(),优先级并不重要,但结果可能不同。 请注意编程时使用的编译系统。 式: (i ) (i ) (i )这样的系统的评价顺序是,先求第1,接着求第2,最后求第3个子式,结果是,3 4 5=12,最后的I的值为6,turbo

11、 c中不同:5, k=(I ) (I ):q=(j ) (j ) :打印(I=% d,j=%d,k=%d,q=%dn,I,j,k,q ); 运算结果: i=6、j=6、k=9、q=18(TC) i=6、j=6、k=9、q=16(VC )、(2)例: i j的耦合性为(i ) j,而不是i ( j )。(3)printf函数输出实际尺残奥的顺序例如为int i=3。 打印机(“% d,%dn”,I,I ); Visual C从左到右依次评价,输出结果: 3,3 (VC ) turbo c从右到左依次评价,输出结果: 4,4,3 (TC )结论是别人连自己都不知道的程序也不写,不知道系统怎么动作的

12、程序也不写。 基本算术运算符的算术表达式和运算符的优先级和耦合性强制性变换运算符的自增加,关于自减运算符表达式的使用的进一步说明,6算术运算符的总结,1,代入运算符“=”是代入编号,也是代入运算符的功能:将代入编号右边的表达式的值指定给代入编号左边的变量,代入编号中也包含修正的功能。 例: a=3; b=x*y; 无论在a、b变量中原本存储着什么样的值,执行代入语句时新的值会取代旧的值,3.9代入运算符和代入式根据变量类型接受的数据不同,在代入运算符两侧的数据类型不一致的情况下,在代入时将类型变换(1)实型数据分配给整数变量(2)整数数据被分配给实变量时,数值不变,但以浮点形式保存在内存中。

13、(3)将3) double型数据分配给float变量,切取7位的有效数字,保存float单元。 将数值溢出(4)字符类型数据分配给整数变量的无符号字符类型分配整型量:存储在整数变量的下位8比特中,在上位0分配给有符号字符类型分配整型量的情况下为最上位1 (负数) (5) int,short, 如果将长型数据分配给char变量,则将其下位分配给char型变量(6)长型数据分配给int型变量, 将长型数据的低位16比特分配给int型变量(将unsigned int型数据分配给长型变量时,将unsigned short型数据发送给长int型变量的低位16比特, 如果将long int变量的上位16比

14、特中补充0的无符号数据直接分配给相同长度的带符号变量,则直接分配(8)将带符号的数量分配给相同长度的无符号变量,根据2、类型变换、2、类型变换变量类型而接受的数据不同,代入运算符的两侧如果将结果I的值为3 (2)的整数数据分配给实变量,则数值保持不变,但以浮点形式保存在内存中。 浮点a=23; 在将23转换为23.000000之后,发送a的双精度b=23。 首先将23转换为23.00000000000000000,然后发送到b。 (3) double型数据在float变量中剪切之前的7位有效数字,保存到float单元中。 请注意,数值范围不能溢出。 浮点f; 双精度d=123.45678 e

15、65; f=d; 由于数据溢出,如果将f得到错误值的浮点数据分配给double变量,则值不变,有效位扩展为16位。 (4)将字符类型数据被分配给整数变量的字符数据存储在1字节中,将整数数据存储在2字节中,将字符数据存储在整数变量的低位8比特中,将无符号字符类型数据分配给整数变量时:存储在整数变量的低位8比特中,用高位0进行补充,main () int i; 无标记卡片c; c=376; i=c; 打印机(c=%dn,c=%dn,I,c ); 结果: i=254 c=254,在带符号字符类型数据被分配给整数变量时,如果最高位比特为1 (负数),则整数变量的高位8比特补充1,如果最高位比特为0 (正数),则整数变量的高位8比特补充0。 例如t3-8-9. c主() inti; 卡拉c; c=376; i=c; 打印机(c=%dn,c=%dn,I,c

温馨提示

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

评论

0/150

提交评论