《基本数据类型和运算符.ppt》由会员分享,可在线阅读,更多相关《基本数据类型和运算符.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 二二 章章 基本数据类型、运算符和表达式基本数据类型、运算符和表达式1主要教学内容主要教学内容主要教学内容主要教学内容 n n常量与变量常量与变量常量与变量常量与变量n n整形数据整形数据整形数据整形数据n n实型数据实型数据实型数据实型数据 n n字符型数据字符型数据字符型数据字符型数据 n n算术表达式算术表达式算术表达式算术表达式 本章要求本章要求本章要求本章要求 掌握各种整型、字符型、浮点型掌握各种整型、字符型、浮点型掌握各种整型、字符型、浮点型掌握各种整型、字符型、浮点型变量变量变量变量的定义的定义的定义的定义和和和和引用方法,引用方法,引用方法,引用方法,掌握掌握掌握掌握表达
2、式表达式表达式表达式的计算方法。的计算方法。的计算方法。的计算方法。2C语言数据类型语言数据类型数据类型数据类型基本类型基本类型导出类型导出类型整型整型字符型字符型实型实型枚举型枚举型空类型空类型单精度型单精度型双精度型双精度型数组类型数组类型指针类型指针类型结构体类型结构体类型联合体类型联合体类型32 21 1 关键字、标识符和保留标识符关键字、标识符和保留标识符2 22 2 基本数据类型基本数据类型2 23 3 运算符和表达式运算符和表达式42 21 1 关键字、标识符和保留标识符关键字、标识符和保留标识符1、关键字关键字是具有特定含义的、专门用来说明是具有特定含义的、专门用来说明C语言的
3、特语言的特定成分的一类单词。(定成分的一类单词。(C语言共有语言共有32个)个)如:如:autobreak等(见教材等(见教材P10)52、标识符标识符是用来标识符号常量、变量、函数等名字的符是用来标识符号常量、变量、函数等名字的符号表示。它包括两类:一类是保留标识符,一类是自定义号表示。它包括两类:一类是保留标识符,一类是自定义标识符。这里主要说的是自定义标识符。标识符。这里主要说的是自定义标识符。自定义标识符的自定义标识符的命名规则命名规则:(1)标识符的第一个字符必须是英文字母或下划线标识符的第一个字符必须是英文字母或下划线“_”;(2)其后可以是英文字母、数字和下划线;)其后可以是英文
4、字母、数字和下划线;(3)名字的长度有一定限制,)名字的长度有一定限制,TurboC规定前规定前32个字符有个字符有效;效;(4)C语言对字母是敏感的,即大小写是有区分的。语言对字母是敏感的,即大小写是有区分的。63、保留标识符保留标识符是系统保留的一部分标识符,通常用于系是系统保留的一部分标识符,通常用于系统定义和标准库函数的名字。统定义和标准库函数的名字。72 22 2 基本数据类型基本数据类型基本数据类型的名字和长度基本数据类型的名字和长度完整类型名完整类型名简写类型名简写类型名类型长度(字节)类型长度(字节)值的范围值的范围charchar1有符号:有符号:128127无符号:无符号:
5、0255signed charsigned char1128127unsigned charunsigned char10255intint 或或signed2或或4(与具体机(与具体机器和系统有关)器和系统有关)2字节:字节:32768327674字节:字节:21474836482147483647signed intunsignedunsigned2或或4(与具体机(与具体机器和系统有关)器和系统有关)2字节:字节:0655354字节:字节:04294967295unsigned intshortshort23276832767short intsigned shortsigned sho
6、rt int8完整类型名完整类型名简写类型名简写类型名类型长度类型长度(字节)(字节)值的范围值的范围longlong421474836482147483647long intsigned longsigned long intunsigned shortunsigned short2065535unsigned short intunsigned longunsigned long404294967295unsigned long intfloatfloat4约约3.4e-383.4e+38(7位有效数字)位有效数字)doubledouble8约约1.7e-3081.7e+308(15位有效
7、位有效数字)数字)long doublelong double8有具体实现定义有具体实现定义续前表续前表92.2.1常量常量常量(常数)是在程序的执行过程中不变的,它常量(常数)是在程序的执行过程中不变的,它包括两种:一种是文字常量,一种是符号常量。包括两种:一种是文字常量,一种是符号常量。一、文字常量的表示方法一、文字常量的表示方法 1整数整数整数的三种形式:十进制、八进制、十六进制整数的三种形式:十进制、八进制、十六进制整数的格式:整数的格式:前缀整数部分后缀前缀整数部分后缀前缀:空前缀:空00 x|0X其中:十进制无前缀(空)其中:十进制无前缀(空),数码为数码为09八进制前缀为八进制前
8、缀为0,数码为,数码为07十六进制前缀为十六进制前缀为0 x或或0X,数码为数码为09,af或或AF后缀:后缀:u|U|l|L|ul|UL其中:其中:u或或U表示无符号数字表示无符号数字l或或L表示长整型数字表示长整型数字10如:如:12135123L32U12UL01501265034U0 x120 x5c0 x250 x34U8a123456-23u01812,345112.浮点数浮点数(十进制小数形式和指数形式)十进制小数形式和指数形式)浮点数的格式浮点数的格式:整数部分小数部分整数部分小数部分en后缀后缀注意:注意:一个浮点数可以无整数部分或小数部分,但两者不能均无。一个浮点数可以无整
9、数部分或小数部分,但两者不能均无。一个浮点数可以无小数点或指数部分,但两者不能均无。一个浮点数可以无小数点或指数部分,但两者不能均无。后缀:后缀:f|F|l|L其中:当有其中:当有f或或F时时浮点数为浮点数为float,缺省是为缺省是为double。当有当有l或或L时浮点数为时浮点数为longdouble,缺省是为缺省是为double。如:如:12.45-23.5671.23f1.25e5-0.04e-10123e+5f1.25e40fe51.25e3.5123.字符字符字符数据的格式:字符数据的格式:字符字符它有两种具体形式:它有两种具体形式:(1)字符的图形符号字符的图形符号 A a 1$
10、A a 1$(2)转义字符转义字符 转义字符有三种形式转义字符有三种形式 (1 1)字符字符(2 2)oooooo 1 13 3位八进制数字,无前缀位八进制数字,无前缀 (3 3)xhhxhh 1 12 2位位1616进制数字,前缀为进制数字,前缀为x x如:如:a n t v b ra n t v b r f ”0?f ”0?40 x41 40 x41转义字符参见教材转义字符参见教材P23134.字符串字符串字符串的格式:字符串的格式:”字符序列字符序列”字符串的长度是字符序列中的字符个数字符串的长度是字符序列中的字符个数字符串的存储长度是实际长度加字符串的存储长度是实际长度加1如如果果字字
11、符符串串跨跨行行可可以以在在前前一一行行字字符符串串的的末末尾尾加加一一个个“”,然后再回车。然后再回车。字符序列中可以是图形符号也可以是转义字符。字符序列中可以是图形符号也可以是转义字符。如:如:”abcdefgABCDE”1234567890”12+34=”asdas2342efeo&hgh4t”Hellon”14二、二、符号常量符号常量1用用#define定义符号常量定义符号常量格式:格式:#define标识符标识符常量表达式常量表达式2用用const定义符号常量定义符号常量格式:格式:const类型区分符类型区分符标识符常量表达式;标识符常量表达式;标识符即为符号常量名标识符即为符号常
12、量名(符号常量定义好后就不能再重新符号常量定义好后就不能再重新给它赋值给它赋值)。如:如:definePI3.14159#defineN100constintM=200;constintMAX=1000;constdoublePI=3.14159;constcharBLANK=;其中:其中:define为宏定义(预编译指令)为宏定义(预编译指令)const为为C语言语句语言语句152 22 22 2 变量及变量说明变量及变量说明变变量量是是在在程程序序的的执执行行过过程程中中其其值值经经常常变变化化的的量量,变变量量是是一一个个容容器器,是是内内存存中中的的存存储储单单元元。不不同同类类型型的
13、的变变量量用用来来存存储储不不同同类类型型的的常常量量或或表表达达式式的的值值。变变量量在在使使用用前前必必须须先定义(说明)先定义(说明)1 1 变量说明的形式变量说明的形式格式:格式:类型区分符类型区分符 变量表;变量表;类型区分符见前面的基本数据类型名字表类型区分符见前面的基本数据类型名字表变量表中的变量之间以逗号相间隔变量表中的变量之间以逗号相间隔如:如:intint i,j,k;i,j,k;float a,b,c;float a,b,c;char ch1,ch2;char ch1,ch2;162变量的显式初始化变量的显式初始化变量的初始化是在定义变量的同时赋以初始值。变量的初始化是在
14、定义变量的同时赋以初始值。格式:格式:类型区分符类型区分符变量名变量名表达式表达式,变量名,变量名表达式表达式;如:如:inta=10,b=20;floatx=1.23f,y=0.24e-5f;charch1=A,ch2=1;172 23 31 1 概述概述2 23 32 2 算术运算算术运算2 23 33 3 关系运算关系运算2 23 34 4 逻辑运算逻辑运算2 23 35 5 自增自减运算自增自减运算2 23 36 6 位运算位运算2 23 37 7 赋值运算赋值运算2 23 38 8 条件运算条件运算2 23 39 9 顺序求值运算顺序求值运算“,”2.3运运算算符符与与表表达达式式1
15、82 23 31 1 概述概述1运算符运算符按按操操作作数数的的数数目目来来分分有有:单单目目、双双目目、三三目。目。按运算符的功能来分有:算术运算符、关按运算符的功能来分有:算术运算符、关系运算符、逻辑运算符、自增自减运算符、系运算符、逻辑运算符、自增自减运算符、位运算符、赋值运算符和条件运算符。此位运算符、赋值运算符和条件运算符。此外还有:下标运算符、函数调用运算符、外还有:下标运算符、函数调用运算符、顺序求值运算符和类型强制运算符。顺序求值运算符和类型强制运算符。192.表达式表达式一一般般来来讲讲表表达达式式是是:由由运运算算符符和和操操作作数数组组成成的的符合符合C的语法的算式。的语
16、法的算式。严严格格地地讲讲:程程序序中中的的常常量量、变变量量、有有返返回回值值的的函函数数调调用用都都是是表表达达式式;以以表表达达式式为为操操作作数数的的表表达达式式是是表表达达式式;用用()括括起起来来的的表表达达式式也也是是表表达式。达式。3运算符的优先级与结合性运算符的优先级与结合性参见教材参见教材P2920算术运算符有:算术运算符有:单目(单目(+正,正,-负)负)双目(双目(+,-,*,/,%求余数)求余数)表达式:表达式:+e或或-e或或e1ope2其中:其中:e,e1,e2为为操作数;操作数;op即为上述的双目运算符。即为上述的双目运算符。2 23 32 2 算术运算算术运算
17、操作数的类型:为任何基本类型,必须是整型。操作数的类型:为任何基本类型,必须是整型。结果类型:与操作数类型相同。结果类型:与操作数类型相同。结果的符号与左操作数相同。结果的符号与左操作数相同。21例如:例如:356结果为结果为333(45)结果为结果为2752结果为结果为125结果为结果为2125结果为结果为212(5)结果为结果为2另外:要学会把各种算术表达式用另外:要学会把各种算术表达式用C语言表达式表示。语言表达式表示。22当操作数两边的类型相同时,运算结果的类型和操作数的类当操作数两边的类型相同时,运算结果的类型和操作数的类型相同。当两边的类型不一致时,结果的类型为它们之间最高者。型相
18、同。当两边的类型不一致时,结果的类型为它们之间最高者。也就是在运算之前,先把低类型转换成高类型,再运算。也就是在运算之前,先把低类型转换成高类型,再运算。类型转换的一般原则是:所占字节数少的转换成字节数多的。类型转换的一般原则是:所占字节数少的转换成字节数多的。long doubledoubleunsigned long intlong intunsigned intintfloatchar,short高低如不按此规则,可以使如不按此规则,可以使用强制类型转换:方法用强制类型转换:方法为:为:(类型符)表达式(类型符)表达式即即将将表达式表达式的类型转的类型转化为化为类型符类型符所指定类型。所
19、指定类型。232 23 33 3 关系运算关系运算运算符:运算符:,=,=,!=()表达式的形式:表达式的形式:e1ope2操作数的类型:为任何基本类型。操作数的类型:为任何基本类型。结果类型:结果类型:1和和0。例如:例如:32*4结果为结果为05=6结果为结果为0;5=5结果为结果为1385结果为结果为1;05结果为结果为0242 23 34 4 逻辑运算逻辑运算运算符:,运算符:,!(单目)!(单目)与与或或非非表达式的形式:表达式的形式:!e或或e1ope2参加运算的操作数:任何非参加运算的操作数:任何非0的数均表示的数均表示真真,0表示表示假假。操作数的类型:为任何基本类型。操作数的
20、类型:为任何基本类型。结果类型:结果类型:1和和0。AB!AA BA B001000非非0101非非00001非非0非非001125这里有两点须说明:这里有两点须说明:1)当当运算的左边为运算的左边为0时后边不再计算,结果一定为时后边不再计算,结果一定为0。2)当当运算的左边为运算的左边为非非0时后边不再计算,结果一定为时后边不再计算,结果一定为1。例如:例如:35&48结果为结果为035&9结果为结果为139结果为结果为173|52&37结果为结果为153&+x4;执行完后执行完后x=5,y=1y=+x4&+x4;执行完后执行完后x=4,y=0y=+x3|+x4;执行完后执行完后x=4,y=
21、1302 23 36 6 位运算位运算运运算算符符:(求求反反,单单目目),(按按位位与与),(按按位位或或),(异异或或),(右移)(右移)表达式的形式:表达式的形式:e或或e1ope2操作数的类型:为整型。操作数的类型:为整型。结果类型:与操作数类型相同。结果类型:与操作数类型相同。312 23 37 7 赋值运算赋值运算运算符:简单赋值运算符:运算符:简单赋值运算符:复合赋值运算符:复合赋值运算符:opop=,表达式的形式:表达式的形式:v=e或或vop=e操作数的类型:操作数的类型:v为基本类型的为基本类型的变量变量,e为基本类型的为基本类型的表达式表达式。结果类型:与结果类型:与v的
22、类型相同。的类型相同。例如:例如:inti,j;i=12j=i*2i+=5j+=2*4322 23 38 8 条件运算条件运算运算符:?:运算符:?:表达式的形式:表达式的形式:e1?e2:e3e1必须是基本类型或指针类型,一般为整型。必须是基本类型或指针类型,一般为整型。e2和和e3可以为不同的基本类型,相同的结构、联合可以为不同的基本类型,相同的结构、联合或指针类型;或者一个是任何类型的指针,另一个或指针类型;或者一个是任何类型的指针,另一个是是void类型的指针;或者一个是任何类型的指针,类型的指针;或者一个是任何类型的指针,另一个是值为另一个是值为0的常量表达式;的常量表达式;e2和和e3通常为基本通常为基本类型。类型。例如:例如:35?10:3020?30:40332 23 39 9 顺序求值运算顺序求值运算“,”运算符:运算符:,表达式的形式:表达式的形式:e1,e2操作数的类型为:基本类型或指针类型操作数的类型为:基本类型或指针类型结果类型:与结果类型:与e2的类型相同。的类型相同。例如:例如:a=3,a*534