《第2章 数据类型及表达式精选PPT.ppt》由会员分享,可在线阅读,更多相关《第2章 数据类型及表达式精选PPT.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 数据类型及表达式第1页,此课件共29页哦 数据类型指针类型空类型基本类型整型字符型实型(浮点型)枚举类型单精度型双精度型构造类型数组类型结构体类型共用体类型第2页,此课件共29页哦常量 在程序运行过程中其值不能改变的量叫做常量。常量分为整型常量、实型常量和字符型常量等。整型常量有23、-7、036(八进制)、0 x2d(十六进制)、5L(长整型常量)等。实型常量有5.87、2e3(指数形式)等。字符型常量有a、n(转义字符)、”china”(字符串常量)等。可以使用标识符代表一个常量,例如:#define PI 3.14 PI就称为符号常量。C语言规定标识符以字母开头,由字母、数字或下
2、划线组成。一般符号常量名用大写字母,变量名用小写字母。第3页,此课件共29页哦变量 v在程序运行过程中其值可以改变的量叫做变量。变量对应了内存的一段存贮单元。v变量要先定义,再使用。第4页,此课件共29页哦整型变量 int a,b;/*定义整型变量a和b*/long c;/*定义长整型变量c*/unsigned d;/*定义无符号整型变量d*/无符号型其补码最高位是数值位,因此没有负数。一般整型占2个字节,长整型占4个字节。第5页,此课件共29页哦整型数据的取值范围类型 类型标识符 数值范围 占用字节数基本型 Int-3276832767即-215(215-1)2短整型 short int-3
3、276832767即-215(215-1)2长整型 long int 231(231-1)4无符号整型 unsigned int 065535即0216-1 2无符号短整型 unsigned short 065535即0216-1 2无符号长整型 unsigned long 0(232-1)4第6页,此课件共29页哦例如:main()int a,b,c;a=32767;c=a+1;printf(c=%d n,c);运行结果为:c=-32768 第7页,此课件共29页哦实型变量 float a;/*定义浮点型变量a*/double b;/*定义双精度型变量b*/float 型有7位有效数字,do
4、uble型有15位有效数字。第8页,此课件共29页哦例如main()float a;a=0.3;printf(%f,a);运行结果为:0.300000第9页,此课件共29页哦实型数据的取值范围类型 类型标识符 占用字节数能表示数值的有效数字 数值范围 单精度实型 Float 47位 1038 双精度实型 Double 81516位 10308 第10页,此课件共29页哦字符型变量 char c=a;/*定义字符型变量c,并初始化*/v字符型数据按ASCII码存储,占一个字节。v给字符变量赋值时可以赋予字符的ASCII码。例如:char a=65的结果是a变量中存放字母A。第11页,此课件共29
5、页哦例如 main()char a=a,b=b,c=c,d=65;a=a+1;b=b+2;c=c+3;d=d+4;printf(“%c%c%c%cn“,a,b,c,d);运行结果:bdfE 第12页,此课件共29页哦常见的转义字符 字符形式 功 能 n 换行 t 横向跳格(即跳到下一个输出区)v 纵向跳格 b 退格 r 光标移到当前行开头 f 走纸换页 反斜杠字符“”单引号字符 “双引号字符 ddd 1到3位八进制字符。如 123表示八进制数123,即十进制数83 xhh 1到2位十六进制字符。如x21,表示十六进制数21,即十进制数33 第13页,此课件共29页哦变量的初始化可以在定义变量时
6、为变量赋值。例如:int a=5,b=5,c=6;int a=b=c=6;/*错误的初始化*/。第14页,此课件共29页哦数据间的混合运算 在C语言中,各种类型数据可以在一个表达式中进行运算。不同类型的数据要先转换成同一类型,然后进行运算。第15页,此课件共29页哦高低doublefloatlongunsignedintchar,short图中横向的箭头表示必定的转换,图中纵向的箭头表示当运算对象为不同类型时的转换方向。类型转换第16页,此课件共29页哦运算符 C语言的运算符有:算术运算符、关系运算符、逻辑、位、赋值、条件、逗号、指针、求字节数、强制类型换算、分量、下标、自加自减等。本章介绍算
7、术运算、赋值运算和逗号运算。第17页,此课件共29页哦优先级和结合性 优先级是指当表达式中包含有不同类型的运算符时的运算顺序。结合性是指当表达式中有若干个同一类型的运算符时的运算顺序。第18页,此课件共29页哦算术运算符及表达式、*、%(取余)例如:7%4 得 3 (3+a)/9%8 得 3注意:%运算只针对整型数据优先级:先*、%,后、结合性:左结合第19页,此课件共29页哦自增和自减运算 自增、自减例如:a、a 相当于 aa1 a、a 相当于 aa 1注意:a 是先自增再取值,a 是先取值再自增。或 运算只针对整型变量。结合性:右结合第20页,此课件共29页哦例main()int a=5,
8、b;b=a+;结果显示:结果显示:a=6,b=5a=6,b=5第21页,此课件共29页哦赋值运算符及表达式=运算符把右边的值赋给左边的变量右结合,优先级仅高于逗号运算符。第22页,此课件共29页哦赋值类型转换 当赋值运算符两边的数据类型不一致时,系统会自动进行转换。当数值赋给字符型变量时,按照ASCII码进行转换。当字符型数据赋给整型变量时,将其ASCII码赋值。当实型数据赋给整型变量时,舍弃小数部分。当整型数据赋给实型变量时,自动添加小数位数。当有符号数赋给相应无符号数时,连原有的符号也作为数值一起传送。第23页,此课件共29页哦复合的赋值运算符a+=3等价于a=a+3a%=3等价于a=a%
9、3a*=3+2等价于a=a*(3+2)a+=-=a*a等价于a=a+(a=a-a*a)第24页,此课件共29页哦例如main()int a=12;printf(a=%dn,a);a+=2;printf(a=%dn,a);a*=2+3;printf(a=%dn,a);a+=a-=a+=a;printf(a=%dn,a);运行结果:a=12a=14a=70a=0第25页,此课件共29页哦main()int i,j,m=0,n=0;i=8;j=10;m+=i+;n-=-j;printf(i=%d,j=%d,m=%d,n=%d,i,j,m,n);结果:i=9,j=9,m=8,n=-9 第26页,此课件共29页哦强制类型转换 必要时可以在表达式中对数据类型进行强制转换。注意转换的只是表达式的值,而变量的数据类型仍然不变。第27页,此课件共29页哦例如main()int a;float i;i=13.6;a=(int)i%5;printf(a=%d,i=%fn,a,i);第28页,此课件共29页哦逗号表达式 将几个表达式用逗号分开,分别计算。整个表达式的值是最后一个表达式的值。例如:a=3*5,a*4结果:a=15 表达式的值是:60例如:b=(a=3*5,a*4),a+5结果:a=15,b=60 表达式的值是20第29页,此课件共29页哦
限制150内