C语言【清华大学出版社】西安交通大学课件第03章.pptx
第三章数据类型、运算符和表达式;3.1C语言数据类型;3.2常量与变量;说明:;符号变量的好处;3.2.2变量;在C语言中,变量必须强制定义,其目的:
1、凡未被事先定义的,不作为变量名。
2、每一个变量被指定为一确定的类型,在编译时就能为
其分配相应的存储单元。
3、指定每一个变量为一确定的类型,在编译时据此检查
该变量所进行的运算是否合法。
;3.3整型数据;3.3.2整型变量
整型数据在内存中的存放形式(补码表示法:便于加减运算)
inti;
i=10;
10=(1010)2;2整型变量的分类;11;;整型数据的溢出:
main()
{inta,b;
a=32767;b=a+1;
printf(“”%d,%d”,a,b);
运行结果:32767,-32768
改进:将变量a和b改成long型,并按%ld格式输出。;;3.4实型数据;一个实数可以有多种指数表示形式。
例如123.456可以表示为
123.456e0、12.3456el、1.23456e2、
0.123456e3、0.0123456e4、05等。
把其中的1.23456e2称为“规范化的指数形式”,
即在字母e(或E)之前的小数部分中,小数点左边
应有一位(且只能有一位)非零的数字。例如
2.3478e2、3.0999E5、6.46832e12都属于规范化的指数形式;
而12.908e10、0.4578e3、756e0则不属于规范化的指数形式。
(一个实数在用指数形式输出时,是按规范化的指数形式输出的);一个实型数据一般在内存中占4个字节(32位)。实型数据按
照指数形式存储。系统把一个实型数据分成小数部分和指
数部分,分别存放小数部分采用规范化的指数方式表示。
例如:;;main()
{floata,c;doubleb;
a=123456.789e5;b=123456789111111.789;
c=a+20;
printf(“a=%f,b=%f,c=%f\n”,a,b,c);
}
输出结果:
a=12345678848.000000,b=123456789111111.781000,
c=12345678848.000000
(避免将一个很大的数与一个很小的数相加,,以免出现舍入误差);3.5字符型数据;说明:;判断下列字符串的长度:
“\\\’\054”“\x56\”\\\c\ta”
“\\\n\t\bab”;;3.5.2字符变量;main()
{charc1,c2;
c1=97;c2=98;
printf(“%c%c\n”,c1,c2);
printf(“%d%d\n”,c1,c2);
}
输出结果:
ab
98
但是应注意字符数据只占一个字节,它只能存放0—
255范围内的整数。;3.5.4字符串常量;‘b’与“b”是否相同?;3.6变量赋初值;注意:
???始化不是在编译阶段完成的,而是在程序运行时执行
本函数时赋予初值的,相当于有一个赋值语句。例如:
inta=3;
相当于:
inta;/*指定a为整型变量*/
a=3;/*赋值浯句,将3赋给a*/
又如
inta,b,c=5
相当于:
inta,b,c;/*指定a,b、c为整型变量*/
c=5;/*将5赋给c*/;3.7各类数值型数据间的混合运算;
例:若有:inti;floatf;doubled;
longe;
试判断表达式10+‘a’+i*f-d/e的类型;C语言使用的基本表达式有:
⑴赋值表达式,如:a=3
⑵算数表达式,如:3+4*2
⑶关系表达式,如:32
⑷逻辑表达式,如:35a=b
⑸条件表达式,如:ab?a:b
⑹逗号表达式,如:a=3,b=4,c=5;3.8算术运算符和算术表达式;2、算术表达式和运算符的优先级与结合性;说明:
(1)表达式应用括号括起
例如:(int)(x+y);
如果写成(int)x+y则只将x转换成整型,然后与y相加。
若要得到x/2的小数部分,应写为:
(float)x/2还是(float)(x/2)
(2)在强制类型转换时