《高级语言程序设计教学课件》第5章.pptx
第5章数据类型和表达式
2整型基本类型:int类型比特数取值范围[signed]int32-231~(231-1)unsigned[int]320~(232-1)[signed]short[int]16-215~(215-1)unsignedshort[int]160~(216-1)[signed]long[int]32-231~(231-1)unsingedlong[int]320~(232-1)
3类型字节数有效数字最小取值范围float46~7-3.4*10-38~3.4*1038double815~16-1.7*10-308~1.7*103085.2.2实型数据系统默认实型常量为double类型若希望指定为float类型在后面加f或F3f-0.123F2e-3f
45.2.3字符型数据charc1,c2;c1=a;c2=b;字符常量以单撇号括起来的一个字符。如a、C、#以一个\开头的字符序列。字符形式含义ASCII码\n换行,将当前位置移到下一行开头10\t水平制表(跳到下一个tab位置)9\b退格,将当前位置移到前一列8\r回车,将当前位置移到本行开头13\f换页,将当前位置移到下一页开头12字符形式含义ASCII码\\反斜杠字符\92\单撇号字符39\双撇号字符34\ddd1到3位8进制数所代表的字符\xhh1到2位16进制数所代表的字符
55.3运算符及表达式C运算符简介算术运算符+-*/%++--关系运算符====!=逻辑运算符!||位运算符~|^赋值运算符=及其扩展(+=-=等)逗号运算符,强制类型转换(类型)条件运算符?:分量运算符.-指针运算符*下标运算符[]求字节数sizeof其它()-
6基本的算术运算符+-*/%++--优先级:-(负)++--?*/%?+-(减)算术运算符
7自增、自减运算符++--作用使变量值加1或减1种类前置++i,--i先执行i=i+1或i=i-1,再使用i值后置i++,i--先使用i值,再执行i=i+1或i=i-1?5++(a+b)++??
8a+=3x*=y+8x%=3复合赋值运算符种类+=-=*=/=%=含义varop=exp?var=varop(exp)?a=a+3?x=x*(y+8)?x=x%3
9逗号运算符逗号运算符形式:表达式1,表达式2,……表达式n优先级:最低结合性:从左向右逗号表达式的值:等于表达式n的值main(){intx,y=7;floatz=4.0;x=(y=y+6,y/z);printf(x=%d,y=%d,z=%f,x,y,z);}x=3,y=13,z=4.000000
10位运算符运算符功能~按位取反右移左移按位与^按位异或|按位或shortinti=21;/00010101shortintj=56;/00111000~i1110101065514i2000001015i20101010084ij0001000016i^j0010110145i|j0011110161
115.4类型转换混合运算的规则不同类型数据混合运算,先转化为同一类型转化规则float型一律转化为double型char,short型转化为int型精度低类型转化为精度高类型floatchar,shortdoublelongunsignedint
12inta=3;floatf=5.14;charc=a;10+c+a*f的结果是?10+c?c转化为int型,c的值为97,则结果为107a*f?a和f转化都为double型,结果为9c+a*f?将10+c的结果转化为double型与a*f的结果相加结果为116.420000floatchar,shortdoublelongunsignedint
13强制类型转换运算符作用:将一个表达式的值转换成所需类型一般形式:(类型名)(表达式)说明:表达式必须用括号括起来在进行强制转换时,得到一个所需类型的中间变量,原来变量的类型并没有发生变化(double)a(int)(x