资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言的基本数据类型语言的基本数据类型常量与变量常量与变量运算符与表达式运算符与表达式数据类型转换数据类型转换C语言的基本数据类型与表达式退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式数据类型(数据类型(Data Type)n数据为什么要区分类型?数据为什么要区分类型?n不同类型的数据代表不同的不同类型的数据代表不同的p数据表示形式数据表示形式p合法的取值范围合法的取值范围p占用内存空间大小占用内存空间大小p可参与的运算种类可参与的运算种类 退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式数据类型(数据类型(Data Type)字符类型字符类型char整型整型int、long、short基本类型基本类型实型实型单精度型单精度型float浮点型浮点型双精度型双精度型double数据类型数据类型枚举类型枚举类型enum数组类型数组类型 构造类型构造类型结构体类型结构体类型struct共用体类型共用体类型union指针类型指针类型*空类型空类型void退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式基本数据类型基本数据类型nintp整数,在目前绝大多数机器上占整数,在目前绝大多数机器上占4个字节个字节pTC中是中是2个字节个字节pVC中是中是4个字节个字节nfloatp单精度浮点数,一般是单精度浮点数,一般是4个字节长个字节长ndoublep双精度浮点数,一般是双精度浮点数,一般是8个字节长个字节长ncharp字符,一般是字符,一般是1个字节长个字节长p用来表示用来表示256个个ASCII字符,或者字符,或者0255的整数的整数退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式基本数据类型基本数据类型nshortpshort int,短整数,一般,短整数,一般2个字节长,通常简写为个字节长,通常简写为short。nlongplong int,长整数,一般是,长整数,一般是4个字节长。通常简写为个字节长。通常简写为long。plong double,长双精度(高精度)浮点数,一般是,长双精度(高精度)浮点数,一般是10个字节。个字节。nsignedp用来修饰用来修饰char、int、short和和long,说明他们是有符号的整数,说明他们是有符号的整数(正整数、(正整数、0和负整数),通常情况下该修饰符缺省。和负整数),通常情况下该修饰符缺省。nunsignedp用来修饰用来修饰char、int、short和和long,说明他们是无符号的整数,说明他们是无符号的整数(正整数和(正整数和0)。)。退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式何谓类型溢出(何谓类型溢出(Overflow)nC语言直接提供的任何类型都有取值范围。当向其赋超过此范围的数语言直接提供的任何类型都有取值范围。当向其赋超过此范围的数值,就会产生数值溢出,得到一个不正确的结果。值,就会产生数值溢出,得到一个不正确的结果。nTC中中int的范围是的范围是-3276832767p如果超出取值范围,给它一个小于如果超出取值范围,给它一个小于-32768或者大于或者大于32767的数的数会如何呢?现场编程测验会如何呢?现场编程测验小蛇能吞下小蛇能吞下小蛇能吞下小蛇能吞下大象吗?大象吗?大象吗?大象吗?typeoverflow.c退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式常量常量是指在程序运行中,其数值不能被改变的量是指在程序运行中,其数值不能被改变的量直接常量直接常量(常数)(常数)数值常量数值常量整型常量整型常量实型常量实型常量字符型常量字符型常量字符常量字符常量字符串常量字符串常量符号常量符号常量标识符定义标识符定义退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式整型常数整型常数nint型常量:型常量:18、-31(十进制)(十进制)nlong int型常量:型常量: 123456L、 123456l、123L、123lnunsigned int型常量:型常量:123u、123Un八进制常量:八进制常量:以数字以数字0开头的整数开头的整数p例如:例如:012=1*81+2*80=10( (十进制)十进制)n十六进制形式:以十六进制形式:以0x开头的整数开头的整数p例如:例如:0x12=1*161+2*160=18( (十进制)十进制)退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式实型常数实型常数n十进制小数形式:十进制小数形式:123.45、456.78n指数形式:指数形式:1e-2、4.5e3nfloat型常量:型常量:123.45f、 456.78F、1e-2f、4.5e3Fnlong double型常量:型常量:123.45l、 456.78L、4.5e3Ln缺省为缺省为doublen因为字母因为字母l和数字和数字1容易混淆,所以当用容易混淆,所以当用l做后缀时,常使做后缀时,常使用大写形式用大写形式退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式字符常数字符常数n字符常数的表示方法字符常数的表示方法pa,A,5,%,$p单引号内只能有一个字符,除非用单引号内只能有一个字符,除非用”开头开头n就是一个普通整数,也可以参与各种数学运算就是一个普通整数,也可以参与各种数学运算p每个字符具有一个每个字符具有一个0255之间的数值,可从之间的数值,可从ASCII表表查出查出p注意注意:5和和5有本质的区别有本质的区别p字符的数学运算在密码学内用得比较多字符的数学运算在密码学内用得比较多n用用”开头的字符为转义字符开头的字符为转义字符p例如:例如:”n”,代表,代表1个字符,其含义是换行个字符,其含义是换行退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式转义字符转义字符n一些特殊字符(无法从键盘输入或者另有它用)用转义字一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示。符表示。退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式字符串字符串String常数常数n用双引号括住的由零个或多个字符组成的字符序列用双引号括住的由零个或多个字符组成的字符序列pI am a stringp表示空字符串表示空字符串p转义字符也可以在字符串中使用转义字符也可以在字符串中使用p引号只作为字符串开始和结束的标志引号只作为字符串开始和结束的标志pC语言内部用语言内部用0表示字符串的结束表示字符串的结束p除注释外,是唯一可以出现中文的地方除注释外,是唯一可以出现中文的地方nx和和x是不同的是不同的n里定义了一系列专门的字符串处理函数里定义了一系列专门的字符串处理函数退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式符号常量符号常量n含义:用标识符定义一个常量,也叫做宏常量,通常用大含义:用标识符定义一个常量,也叫做宏常量,通常用大写字母表示。写字母表示。p一旦某个标识符被定义成为一个常量后,以后在程序一旦某个标识符被定义成为一个常量后,以后在程序处理时,该标识符都代表对应的常量值。处理时,该标识符都代表对应的常量值。n定义格式:定义格式:#define 标识符标识符 常量数据常量数据#define MAX 1000#define MIX 10#define PI 3.14退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式计算圆的周长和面积计算圆的周长和面积prg2-2.c#include #include void main()void main() printf(“circumference = %fn”, 2*3.14*3.5);printf(“circumference = %fn”, 2*3.14*3.5);printf(“area = %fn”, 3.14*3.5*3.5);printf(“area = %fn”, 3.14*3.5*3.5); 退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式计算圆的周长和面积计算圆的周长和面积prg2-2.c#include #include #define PI 3.14#define PI 3.14#define R 3.5#define R 3.5void main()void main() printf(“circumference = %fn”, 2*PI*R);printf(“circumference = %fn”, 2*PI*R);printf(“area = %fn”, PI*R*R);printf(“area = %fn”, PI*R*R); 退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式变量变量n是指以标识符为名字,其值可以改变的量是指以标识符为名字,其值可以改变的量n定义形式:定义形式:类型标识符类型标识符 变量名变量名1, 变量名变量名2, 变量名变量名3; p类型标识符:如类型标识符:如int、float、char等等p变量名:程序员自行确定,符合标识符命名规则即可,变量名:程序员自行确定,符合标识符命名规则即可,约定做到见名知意约定做到见名知意n习惯用下划线和大小写间隔的方式命名标识符习惯用下划线和大小写间隔的方式命名标识符nuser_name:Unix风格风格nUserName:Windows风格风格p变量定义是语句,分号一定不能缺少变量定义是语句,分号一定不能缺少退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式变量定义变量定义nint a,b,c;int a; int b; int c;nfloat m,n;nchar s,t;p在在C语言程序中,变量必须语言程序中,变量必须“先定义,先定义,后使用后使用”。p变量定义主要是指出变量的名字,确定变量定义主要是指出变量的名字,确定变量的数据类型。变量的数据类型。p在同一个程序段中,变量不能被重复定在同一个程序段中,变量不能被重复定义。义。退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式变量赋值变量赋值n变量定义后只是按照类型分配了所需的存储空间,但是没变量定义后只是按照类型分配了所需的存储空间,但是没有具体的值。有具体的值。n变量初始化变量初始化:第一次给变量赋值的过程,这个值称为变量:第一次给变量赋值的过程,这个值称为变量的初值。的初值。p先定义再赋值先定义再赋值int a;a=2;p定义的同时赋值定义的同时赋值int a=2;退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式变量赋值变量赋值int a,b,c;a=b=c=3;可以等价为可以等价为int a=b=c=3;n变量初始化后可以再次赋值(即修改变量的值),但是一变量初始化后可以再次赋值(即修改变量的值),但是一个变量任何时刻只能有一个值。个变量任何时刻只能有一个值。int a=5;/变量变量a初始化赋值为初始化赋值为5a=12;/变量变量a的值赋值为的值赋值为12,即发生修改,即发生修改赋值操作是从右向左进行的赋值操作是从右向左进行的变量定义的同时不能连续初始化变量定义的同时不能连续初始化退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式算术运算符算术运算符+、-、*、/、%(求余):双目运算符(求余):双目运算符n%运算左右两数必须为整型数据运算左右两数必须为整型数据5%3=_,6.2%3=_n两个整数相除,结果自动取整(向零取整)两个整数相除,结果自动取整(向零取整)5/3=_n参加运算的两个数中有一个为实数,结果为参加运算的两个数中有一个为实数,结果为double型型x为为double型,型,y为为int型,则型,则x+y的类型的为的类型的为_n字符型数据可以和数值型数据混合运算字符型数据可以和数值型数据混合运算6+A=_退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式*自增、自减运算符自增、自减运算符n单目运算符,也叫做一元运算符单目运算符,也叫做一元运算符n使变量的值在当前基础上加使变量的值在当前基础上加1/减减1ni+/i-:先使用变量:先使用变量i的值,的值,i值再加值再加1/减减1n+i/-i:i值先加值先加1/减减1,再使用变量,再使用变量i的值的值int x = 3, m, n;m = x+;n = +x;执行后执行后m、n、x的的值各是多少?值各是多少?(1) +i和和i+,其本质都可以使,其本质都可以使i值值加加1,-同理。同理。(2) +i和和i+,求值和使用的先后,求值和使用的先后顺序,顺序,-同理。同理。退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式*自增、自减运算符自增、自减运算符m = x+;m = x+;m = x;m = x;x = x + 1;x = x + 1;n = +x;n = +x;x = x + 1;x = x + 1;n = x;n = x;退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式关系运算符关系运算符,=, b & b c):a大于大于b并且并且b大于大于cn或运算或运算|pa | b,只要两者中有一个为真,结果就为真只要两者中有一个为真,结果就为真p( a b | b c):a大于大于b或者或者b大于大于cn非运算非运算!p!a,如果,如果a是是0,结果非,结果非0;如果;如果a是非是非0,结果是,结果是0p并不改变并不改变a的值的值退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式逻辑运算符逻辑运算符prg2-3.c#include #include void main()void main() int a = 10, b = 20, c = 30, d;int a = 10, b = 20, c = 30, d;d = +a = 20 | c+;d = +a = 20 | c+;printf(a = %d, b = %d, c = %d, d = %dn,a,b,c,d);printf(a = %d, b = %d, c = %d, d = %dn,a,b,c,d); 逻辑运算的短路特性逻辑运算的短路特性逻辑运算的短路特性逻辑运算的短路特性退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式实例实例n判断某一年判断某一年year是否是闰年的条件是满足下列两个条件是否是闰年的条件是满足下列两个条件之一:之一:p能被能被4整除,但不能被整除,但不能被100整除;整除;p能被能被400整除;整除;n请用请用C语言运算符和表达式正确描述上述闰年的条件。语言运算符和表达式正确描述上述闰年的条件。(year % 4 = 0) & (year % 100 != 0) | (year % 400 = 0)退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式赋值运算符赋值运算符n赋值运算符赋值运算符=:将一个数据赋给一个变量:将一个数据赋给一个变量n赋值表达式:赋值表达式: p可以是常量、变量或者表达式可以是常量、变量或者表达式int a,b=5,m=7,n=8;a=b;a=m+n;p优先级:赋值运算符优先级低于算术运算符、关系运优先级:赋值运算符优先级低于算术运算符、关系运算符和逻辑运算符算符和逻辑运算符p结合性:结合性:右右结合性结合性退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式复合赋值运算符复合赋值运算符n在赋值运算符在赋值运算符“=”之前加上其他运算符,构成复合赋值之前加上其他运算符,构成复合赋值运算符。运算符。n复合赋值表达式复合赋值表达式 x += 5;x += 5;x *= y+8;x *= y+8;x %= 3;x %= 3;x -= y;x -= y;x = x + 5;x = x + 5;x = x * (y+8);x = x * (y+8);x = x % 3;x = x % 3;x = x - y;x = x - y;退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式逗号运算符逗号运算符n一般形式:表达式一般形式:表达式1, 表达式表达式2n求解过程求解过程p先求解表达式先求解表达式1的值,再求解表达式的值,再求解表达式2的值。的值。p整个逗号表达式的值是表达式整个逗号表达式的值是表达式2的值。的值。n扩展形式:表达式扩展形式:表达式1, 表达式表达式2, , 表达式表达式nint x,y=5;int x,y=5;x=(y=y+6,y=y/3);x=(y=y+6,y=y/3);则则则则xx的值为的值为的值为的值为_(1) (1) 先计算先计算先计算先计算y=y+6y=y+6的值,的值,的值,的值,y=5+6y=5+6,yy值值值值为为为为1111。(2) (2) 再计算再计算再计算再计算y=y/3y=y/3的值,的值,的值,的值,y=11/3y=11/3,yy值为值为值为值为33。所以变量所以变量所以变量所以变量xx的值为的值为的值为的值为33。退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式条件运算符条件运算符n一般形式:一般形式: ? : n运算顺序运算顺序p先求解表达式先求解表达式1的值。的值。p如果表达式如果表达式1的值为真,则求解表达式的值为真,则求解表达式2的值并把它作的值并把它作为整个表达式的值。为整个表达式的值。p如果表达式如果表达式1的值为假,则求解表达式的值为假,则求解表达式3的值并把它作的值并把它作为整个表达式的值。为整个表达式的值。退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式实例实例1n今天我要出门办事,因为需要外出一整天而这段时间又是今天我要出门办事,因为需要外出一整天而这段时间又是多雨的季节,所以我要考虑是否需要携带雨伞。我的判断多雨的季节,所以我要考虑是否需要携带雨伞。我的判断依据是出门时天阴带伞,反之不带伞。请用条件表达式描依据是出门时天阴带伞,反之不带伞。请用条件表达式描述上述判断原则。述上述判断原则。n分析:外出时有两种选择带伞或不带伞,其判别依据为是分析:外出时有两种选择带伞或不带伞,其判别依据为是否天阴。否天阴。n条件表达式描述如下:条件表达式描述如下:天阴天阴 ? 带伞带伞 : 不带伞不带伞退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式实例实例2已知符号函数映射关系如下:已知符号函数映射关系如下:请用条件表达式给变量请用条件表达式给变量y赋值。赋值。y = (x = 0) ? (x 0) ? 1 : 0) : -1退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式实例实例2y = (x = 0) ? (x 0) ? 1 : 0) : -1表达式表达式2:(x 0) ? 1 : 0表达式表达式1表达式表达式2表达式表达式3表达式表达式1表达式表达式2表达式表达式3退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式求字节运算符求字节运算符n一般形式一般形式psizeof(变量名变量名):返回变量的字节长度:返回变量的字节长度psizeof(类型名类型名):返回类型的字节长度:返回类型的字节长度p求出的结果为变量或者类型占用的字节数。求出的结果为变量或者类型占用的字节数。n为什么要用为什么要用sizeofsizeof获得类型或变量的字长?获得类型或变量的字长?退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式求字节运算符求字节运算符prg2-4.c#include #include void main()void main() printf(Data type Number of bytesn);printf(Data type Number of bytesn);printf(- -n);printf(- -n);printf(charprintf(char%dn, sizeof(char);%dn, sizeof(char);printf(intprintf(int%dn, sizeof(int);%dn, sizeof(int);printf(short intprintf(short int%dn, sizeof(short);%dn, sizeof(short);printf(long intprintf(long int%dn, sizeof(long);%dn, sizeof(long);printf(floatprintf(float%dn, sizeof(float);%dn, sizeof(float);printf(doubleprintf(double%dn, sizeof(double);%dn, sizeof(double); VCVC编编编编译器译器译器译器TCTC编编编编译器译器译器译器退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式运算符的优先级运算符的优先级( ) - .! + - + - * & (类型类型) sizeof* / %+ - = !=&|&|? := += -= *= /= %= &= = |= =,退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式自动类型转换自动类型转换n同种数据类型的运算结果,还是该类型同种数据类型的运算结果,还是该类型n不同种数据类型的运算结果,是两种类型中取值范围更大不同种数据类型的运算结果,是两种类型中取值范围更大的那种的那种doublefloatlongunsignedintchar,short精度低精度低精度高精度高退出第二章第二章 C C语言的基本数据类型与表达式语言的基本数据类型与表达式强制类型转换强制类型转换prg2-5.cn将变量或表达式转换为指定类型将变量或表达式转换为指定类型(类型名类型名) (变量或表达式变量或表达式)Prg2-5.cPrg2-5.c:编程计算:编程计算:编程计算:编程计算3/63/6的值。的值。的值。的值。#include #include void main()void main() int x = 3, y = 6;int x = 3, y = 6;float z;float z;z = x / y;z = x / y;printf(z = %fn,z);printf(z = %fn,z); z = (float) (x) / y;z = x / (float) (y);z = (float) (x/y);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号