[2-2]数据类型与表达式精选.ppt
文本预览下载声明
* * * * * * * * * * 能背下优先级表的人凤毛麟角 脑细胞太宝贵了,不能用来死记硬背 用括号来控制运算顺序更直观、方便,并减少出错的概率 先算乘除,后算加减,有括号就先算括号里的 括号太多,有时候不清晰 注意用空格做好分隔 实在不行就拆分表达式 表达式求值过程 自动类型转换 取值范围小的类型赋值给取值范围大的类型是安全的 目的:保证数据在处理过程中,不会产生丢失现象,保证数据的正确处理 实数在运算时,为了提高数据进度,全部以double格式参与计算。 如:float x=90.87+67.78;(warning) 自动类型转换 相同类型数据的运算结果,还是该类型 不同类型数据的运算结果,是两种类型中取值范围大的那种 double float int short char double float unsigned int char,short 低 高 (1)程序1 main() { int d; d=1/3*3.0; printf(d=%d\n,d); } (1)程序2 main() { int d; d=1.0/3*3; printf(d=%d\n,d); } (1)程序3 main() { int d; d=1*3/3; printf(d=%d\n,d); } d=? d=? d=? 【例2-4】:给出并分析下面三段程序的输出结果 0 1 1 Example: int x = 10.67; float y; y = (float)x; (float)10 10.000000 x 10 y ?? 10.000000 类型强转 通过下面方式把表达式的值转为任意类型 (类型)表达式 不改变x float x=98.87; float y=-67.34; int h=x; printf(“%d ”,h); h=y; printf(“%d ”,h); int x=9-0; printf(%d ,x); x=0+9; printf(%d ,x); printf(%f ,x+70.888); 逗号表达式 1.逗号运算符(顺序求值运算符) :即“,” 优先级:为所有运算符中级别最低的 2.逗号表达式 形式:表达式1,表达式2,……表达式n 求解过程:顺次求解表达式1,表达式2…… 最后求解表达式n 逗号表达式的值为: 表达式n的值 多数情况下,并不使用整个逗号表达式的值,更常见的情况是要分别得到各表达式的值 主要用在循环语句中,同时对多个变量赋初值等 for(i = 0,j =0; ij; i++,j++) 逗号表达式 #include stdio.h main() { int a=2,b=4,c=6,x,y; y=((x=a+b),(x+c)); printf(x=%d y=%d\n,x,y); } 【例2-5】逗号表达式的应用 x=6 y=12 如果去掉最外层的括号呢? 讲解:p59-14\15\16\13 2.4 基本输入输出 格式化输出 printf(格式串,[输出项列表]); 输出项列表 = 参数1,参数2,参数3,…… 一. 格式串 1. 原样输出的普通字符 2. 转义字符 3. 格式控制字符 格式输入输出函数 格式输出函数 printf() 格式输入函数 scanf() 格式输出函数 格式 printf(格式控制字符串, 输出项表列); printf(a=%d b=%f, a, b); 可以输出若干任意类型的数据 函数名 可选输 出表列 普通字符 格式 说明符 d,i x,X o u c s e,E f g %% 小结 十六进制无符号整数 不带符号十进制整数 十进制整数 指数形式浮点小数 单一字符 字符串 八进制无符号整数 小数形式浮点小数 e和f中较短一种 百分号本身 int a=-3;printf ( “%d”,a); int a=-3;printf(“%x”,a); int a=-3;printf(“%o”,a); int a=-3;printf(“%u”,a); char a=65;printf(“%c”,a); printf(“%s”,“ABC”); float a=567.789;printf(“%e”,a); float a=567.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); printf(“%%”); -3 fffffffd 37777777775 4294967293 A ABC 5.677890e
显示全部