第二章 基本数据类型、运算符和表达式.ppt
《第二章 基本数据类型、运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《第二章 基本数据类型、运算符和表达式.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章 基本数据类型、运算符和表达式2.1 2.1 C C语言的数据类型语言的数据类型2.1.1 2.1.1 概述概述 程序设计主要解决两个问题:一个是动作,即怎样程序设计主要解决两个问题:一个是动作,即怎样做的问题,这由语句来实现;另一个是动作的对象,即数做的问题,这由语句来实现;另一个是动作的对象,即数据的存放问题,这由数据类型来决定。据的存放问题,这由数据类型来决定。世界上著名的计算机科学家沃斯(世界上著名的计算机科学家沃斯(N.WirthN.Wirth)提出这提出这样一个公式:程序样一个公式:程序=数据结构数据结构+算法算法为什么要规定数据类型呢?为什么要规定数据类型呢?(1)(1)不
2、同数据类型的数据在内存中占据不同长度的存储区不同数据类型的数据在内存中占据不同长度的存储区(2)(2)一种数据类型对应着一个值的范围。一种数据类型对应着一个值的范围。(3)(3)一种数据类型对应着一个运算集。一种数据类型对应着一个运算集。2.1.2 2.1.2 数据类型数据类型数据类型数据类型基本类型基本类型整型整型(有符号、无符号的短、基、长)(有符号、无符号的短、基、长)字符型字符型单精度单精度双精度双精度构造类型构造类型指针类型指针类型空类型空类型数组类型数组类型结构体类型结构体类型联合体类型联合体类型实型实型(浮点型浮点型)枚举类型枚举类型12.2 2.2 常量常量 (2)常量:程序运
3、行过程中其值不发生变化的量。常量:程序运行过程中其值不发生变化的量。三类常量:数值、字符和字符串。三类常量:数值、字符和字符串。2.2.1 2.2.1 数值常量数值常量一、一、整数常量的表示整数常量的表示1、计数制的通用表示方法、计数制的通用表示方法A=an-1bn-1an-2bn-2.a1b1a0b0a-1b-1a-2b-2.a-mb-m基数(基数(b):所含数码的个数所含数码的个数权(权(bx):):表明数码所在的位置表明数码所在的位置数码:数码:0b-1整数常量整数常量实数常量实数常量数值常量数值常量二进制数:二进制数:基数:基数:2权:权:2x数码:数码:01例如:例如:1010.11
4、=12302212102012-112-2=10.75二进制数权值:二进制数权值:1286432168421注:计算机中使用二进制编码表示数据,且只存在二进制。注:计算机中使用二进制编码表示数据,且只存在二进制。2、十进制表示十进制表示基数:基数:10权:权:10 x数码:数码:09例如例如:123.45=110221013100410-1510-23、八进制表示、八进制表示基数:基数:8权:权:8x数码:数码:07例如:例如:023=281380=19注:八进制是二进制的短格式计数法,一位对三位注:八进制是二进制的短格式计数法,一位对三位。例如:例如:023对应的二进制数为对应的二进制数为0
5、10011注:注:C语言中八进制数第一个数字必须为语言中八进制数第一个数字必须为0(八进制标志)(八进制标志)例如:例如:0213-030+056-01234、十六进制表示、十六进制表示基数:基数:16权:权:16X数码:数码:09,A,B,C,D,E,F例如:例如:0XBF3C=1116315162316112160=48956注:十六进制是二进制的短格式计数法,一位对四位注:十六进制是二进制的短格式计数法,一位对四位。例如例如:0XBF3C对应的二进制数为对应的二进制数为1011111100111100注:十六进制数前两个数字必须为注:十六进制数前两个数字必须为0X(十六进制标志)十六进制
6、标志)例如:例如:0X213-0X30+0X56-0X12A二、二、整数常量的几种表示方式之间的转换整数常量的几种表示方式之间的转换红色:连续除基数,取余数直到商为零浅蓝:按权值位展开。黄色:借助二进制数转换。1、十进制变八进制或十六进制、十进制变八进制或十六进制(红色红色)(1)将将139变为八进制数(变为八进制数(0213)8139817余余382余余10余余2(2)将将3158变为十六进制数(变为十六进制数(0XC56)2、八进制或十六进制变十进制八进制或十六进制变十进制(浅蓝浅蓝)(1)将将0213变为十进制数(变为十进制数(139)0213=282+181+380=139(2)将将0
7、XC56变为十进制数(变为十进制数(3158)3、八进制与十六进制变换、八进制与十六进制变换(黄色黄色)(1)将将0X1A3变成八进制数(变成八进制数(0643)P19(2)将将0334变为十六进制数(变为十六进制数(0XDC)P19三、三、整数常量的取值范围整数常量的取值范围短整型数:短整型数:基本整型数:基本整型数:长整型数:长整型数:四、溢出四、溢出整数的值超出了所能表示的范围整数的值超出了所能表示的范围有符号短整型(有符号短整型(16位):位):-32768+32767无符号短整型(无符号短整型(16位)位):065535有符号整型(有符号整型(16位):位):-32768+32767
8、无符号整型(无符号整型(16位)位):065535有符号长整型(有符号长整型(32位):位):-2147483648+2147483647无符号长整型(无符号长整型(32位):位):04294967295五、实数五、实数实数只使用十进制形式表示实数只使用十进制形式表示两种表示方法:两种表示方法:小数形式小数形式与与指数形式指数形式1、小数形式:由整数部分、小数点、小数部分组成、小数形式:由整数部分、小数点、小数部分组成2.7180.123123.0.123123.0.02、指数形式:、指数形式:+整数部分整数部分.小数部分小数部分+e前前部分称为尾数,表示实数的有效值,符号表示整体部分称为尾数
9、,表示实数的有效值,符号表示整体的正负。的正负。e后部分称为阶码,表示小数点在尾数基础上的移动位后部分称为阶码,表示小数点在尾数基础上的移动位数,符号表示移动的方向数,符号表示移动的方向例如:例如:-3.14e2,3.14e-2实数的分类实数的分类单精度单精度,例如:例如:3.1415f双精度双精度,例如:例如:3.1415长双精度长双精度,例如:例如:3.1415L 实实数数取取其其值值的的绝绝对对值值范范围围。当当实实数数超超出出它它的的类类型型所所能能表表示示的的范范围围时时产产生生溢溢出出。如如果果实实数数的的绝绝对对值值小小于于所所能能表表示示的的最最小小值值则则产产生下溢,生下溢,
10、例如:实数例如:实数1.71.7e-309e-309和和-1.7-1.7e-309e-309均产生下溢,均产生下溢,因因为为|1.7|1.7e-309|e-309|1.7e+308|1.7e+308|。上上溢溢时时将将产产生生错错误误的的结结果。果。实实数数又又分分为为单单精精度度(floatfloat)、双双精精度度(doubledouble)和和长长双双精精度(度(long doublelong double)三类。三类。实数的缺省类型为双精度数(实数的缺省类型为双精度数(doubledouble型);型);在在实实数数后后面面加加后后缀缀字字母母f f或或F F表表示示单单精精度度数数(
11、floatfloat型型),例例如如3.141593.14159F F;在在实实数数后后面面加加后后缀缀字字母母l l或或L L表表示示长长双双精精度度数数(long long doubledouble型),例如型),例如1.71.7e+309L.e+309L.单精度实数具有单精度实数具有6 67 7位十进制有效数字;位十进制有效数字;双精度实数具有双精度实数具有15151616位十进制有效数字;位十进制有效数字;长双精度数具有长双精度数具有18181919位十进制有效数字位十进制有效数字。2.2.2 字符常量 一对单引号括起来的单一字符。一对单引号括起来的单一字符。例如:例如:A,2,+字符
12、常量在内存中占一个字节存放,存放的值为该字字符常量在内存中占一个字节存放,存放的值为该字符的符的ASCII码码值。值。美国标准信息交换码美国标准信息交换码ASCIIASCII码码(American Standard Code forAmerican Standard Code for Information Interchange Information Interchange)前前3232个个,0,0 x00 x1fx00 x1f为为控制字符控制字符 是空格,编码为是空格,编码为OX20OX2033编码为编码为OX33OX3399编码为编码为OX39OX39AA编码为编码为OX41OX41Z
13、Z编码为编码为OX5AOX5Aaa编码为编码为OX61OX61zz编码为编码为OX7AOX7A2.2.3 2.2.3 转义字符转义字符用于表示一些没法表示的字符,例如控制字符、单引号等用于表示一些没法表示的字符,例如控制字符、单引号等两种表示形式:两种表示形式:1、反斜杠后面跟一个字符、反斜杠后面跟一个字符例如:例如:0空字符空字符n换行换行 t横向跳格横向跳格 b退格退格r回车回车 字符字符单引号单引号双引号双引号 2、反斜杠后面跟一个字符的、反斜杠后面跟一个字符的ASCII码(两位十六进制数码(两位十六进制数xhh或三位八进制数或三位八进制数ddd)例如:例如:换行字符可以表示为换行字符可
14、以表示为:n、012、12、XA2.2.4 2.2.4 字符串常量字符串常量一对一对双引号双引号括起来的零个或多个的字符序列,字符序括起来的零个或多个的字符序列,字符序列中的字符个数称为字符串的长度。列中的字符个数称为字符串的长度。例如:例如:thisisastringnthisisacprogram长度为长度为0的字符串(即一个字符都没有的字符串)称的字符串(即一个字符都没有的字符串)称为空串,表示为为空串,表示为(一对紧连的双引号)。(一对紧连的双引号)。在存储字符串常量时,由系统在字符串的末尾自动加在存储字符串常量时,由系统在字符串的末尾自动加个空字符个空字符0作为字符串的结束标志作为字
15、符串的结束标志例如:例如:有一个字符串有一个字符串“CHINA”,它在内存中的实际它在内存中的实际存储如下所示。存储如下所示。字符串如果有字符串如果有n个字符,则占用个字符,则占用n+1个个内内存空间。存空间。CHINA0 字符串必须写成一行,如下写法是错误的:字符串必须写成一行,如下写法是错误的:printfprintf(Hello,(Hello,how are you?);how are you?);字符串常数必须写成一行。如果一行写不下,则有两字符串常数必须写成一行。如果一行写不下,则有两种方法可以将行扩展到下一行种方法可以将行扩展到下一行。printfprintf(hello,(hel
16、lo,how are you?);how are you?);两个字符串中间只有空白字符两个字符串中间只有空白字符(分隔符分隔符),认为这是一个字符串。,认为这是一个字符串。2、续行符、续行符 printfprintf(hello,(hello,how are you?);how are you?);2.2.5 2.2.5 符号常量符号常量 将一个常量定义为一个标识符,这个标识符可以代替对应的常量,称为符号常量。例如例如:#define PI 3.1415926(符号常量名使用大写字母)使用符号常量的优点:使用符号常量的优点:1、输入很长的常量可以避免出错,简化输入。、输入很长的常量可以避免出
17、错,简化输入。2、含义直观。、含义直观。3、修改容易、修改容易例如:计算相同半径下的圆周长、圆面积和圆球体积。例如:计算相同半径下的圆周长、圆面积和圆球体积。#definePI3.14159main()main()floatl,s,v,r;floatl,s,v,r;printf(inputr:);printf(inputr:);scanf(%f,&r);scanf(%f,&r);l=2*3.14159*r;l=2*PI*r;s=3.14159*r*r;s=PI*r*r;v=4/3*(3.14159*r*r*r);v=4/3*(PI*r*r*r);printf(l=%f,s=%f,v=%fn,l
18、,s,v);printf(l=%f,s=%f,v=%fn,l,s,v);2.3 2.3 变量及数据类型变量及数据类型2.3.1 2.3.1 变量和变量的地址变量和变量的地址变量:程序运行中可以改变的量。变量:程序运行中可以改变的量。本质是内存中的一块存储区,本质是内存中的一块存储区,变量名:是这块存储区的变量名:是这块存储区的首地址的符号标识首地址的符号标识(通过变量名(通过变量名找到这块存储区在内存中的位置,找到该块存储找到这块存储区在内存中的位置,找到该块存储区内存储的内容)区内存储的内容)注:使用注:使用变量名变量名表示存储的数据。表示存储的数据。使用使用&变量名变量名表示地址。表示地址
19、。变量类型:表明这块存储区的大小,以及施加在这块存储变量类型:表明这块存储区的大小,以及施加在这块存储区内存储的内容上的操作范围区内存储的内容上的操作范围 在在程程序序运运行行时时,变变量量的的值值存存储储在在一一定定的的存存储储单单元元中中,为为此此,须须弄弄清清楚楚变变量量名名和和变变量量值值这这两两个个不不同同的的概概念念,如如左左图图所所示示。存存储储某某变变量量值值的的存存储储单单元元的的首首地地址址称称为为变变量量的的地地址址。如如右右图图所所示示的的单单精精度度实实型型变变量量average,是是具具有有4个个字字节节的的存存储储单单元元,它它们们分分别别是是单单元元400040
20、03,而而4000就就称称为为变变量量average的的首首地地址址。在在C语语言言中中,变变量量的的地地址址用用变变量量名名前前加加&符符号号表表示示,即即&average,或或者者说说&average的值就是的值就是4000。变量名变量名floataverage&average4000sum变量值变量值400140024003存储单元存储单元302.3.2 2.3.2 基本数据类型变量基本数据类型变量一、整型变量一、整型变量包括基本整型、短整型和长整型。包括基本整型、短整型和长整型。ANSIC规定规定long不短于不短于int,short不不长于长于int。具体实现取决于计算机系统。具体实
21、现取决于计算机系统。1、整型变量的类型标识符、整型变量的类型标识符有符号短整型:有符号短整型:signedshortint无符号短整型:无符号短整型:unsignedshortint有符号基本整型有符号基本整型:signedint无无符号基本整型符号基本整型:unsignedint有符号长整型:有符号长整型:signedlongint无符号长整型:无符号长整型:unsignedlongint例如:例如:inta;取值范围为取值范围为-3276832767unsignedintb;取值范围为取值范围为065535二、计算机中数的表示二、计算机中数的表示无符号数表示无符号数表示 00000000=
22、0 00000000=00000000000000000=00000000000000000=0 11111111=255 11111111=2551111111111111111=655351111111111111111=65535 表示有符号数表示有符号数加正负号加正负号用用0和和1代表正负代表正负用某用某种编码方式使符号位也直接参与运算种编码方式使符号位也直接参与运算,不用特殊处理并不用特殊处理并得到正确结果得到正确结果 机器数:符号数值化了的数(最高位为符号位,机器数:符号数值化了的数(最高位为符号位,1 1表示表示负号,负号,0 0表示正号,其余为真值)表示正号,其余为真值)原码表
23、示法:符号原码表示法:符号+绝对值绝对值例如:例如:+3原码原码=00000011=03H-3原码原码=10000011=83H+0原码原码=00000000=00H-0原码原码=10000000=80H八位十六位补码表示法:计算机中有符号数用补码表示补码表示法:计算机中有符号数用补码表示正数的补码正数的补码=正数的原码正数的原码负数的补码负数的补码=该负数相对应的正数的补码按位取反再加一该负数相对应的正数的补码按位取反再加一例如:例如:-46-46补码补码 =?46 46补码补码 =0010 1110=0010 1110 1101 0001 1101 0001(按位取反)(按位取反)1101
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二章 基本数据类型、运算符和表达式 第二 基本 数据类型 运算 表达式
限制150内