第2章数据类型运算符及表达式.ppt
《第2章数据类型运算符及表达式.ppt》由会员分享,可在线阅读,更多相关《第2章数据类型运算符及表达式.ppt(43页珍藏版)》请在三一办公上搜索。
1、C语言程序设计,主讲:计算机应用系,第2章 基本数据类型 运算符及表达式,2.1 C语言的数据类型2.2 标识符、常量和变量2.3 整型数据2.4 实型数据2.5 字符型数据2.6算术表达式2.7赋值表达式2.8 关系表达式和逻辑表达式2.9逗号表达式2.10 位运算,2.1 C语言的数据类型,基本数据类型(VC 6.0),说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,基本数据类型(Turbo C 2.0),整型,字符型,实型,有,无,说明:数据类型所占字节数随机器硬件不同而不同,上表以IBM PC机为例:,数据类型说明:不同的数据类型所占用的存储空间、表示范围、其
2、上的运算以及运算精度不同;算法+数据结构=程序:程序设计主要涉及数据结构和算法两方面的内容。数据结构包含数据的存储形式、数据间的逻辑关系以及定义在其上的运算三方面内容,是对数据的精确描述;算法是为解决一个问题而采取的方法和步骤,是对数据处理的精确描述。算法的设计和实现依赖于特定的数据结构。,2.2标识符、常量和变量,一、标识符 所谓标识符就是名字系统。C 语言的标识符分为两类:系统标识符和用户标识符。系统标识符也叫保留字,包括系统规定的32个关键字,如int、unsigned、extern、if、else、for、sizeof等,以及系统预先定义的具有特定意义的标识符两方面内容,如printf
3、、scanf、define、getchar等。用户标识符就是用户对程序中出现的变量、符号常量、函数、数组、文件名等实体所定义的名字,用户对这些实体命名时必须遵循标识符命名规则。,2.2标识符、常量和变量,二、常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。常量可以直接用一个字面值的形式来表示,也叫字面常量。C语言的常量分为:整型常量:12、0、-3实型常量:4.6、-1.23、0.314e1、5.6E2字符常量:a、b字符串常量:“I am a boy!”在语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:#define 标识符
4、常量表达式,如:#define PI 3.1415926/定义符号常量PIvoid main()int r=1,s;s=PI*r*r;/合法引用,编译时用3.1415926替换PI PI=PI+1;/非法引用,不能改变其值,2.2标识符、常量和变量,三、变量在程序运行过程中,其值可以被改变的量称为变量,也称内存变量。内存变量有两个要素:变量名:每个变量都必须有一个名字变量名,变量的命名必须遵循用户自定义标识符命名规则。名字就是地址!好理解吗?别人如何找我们?人的名字、身份证号都是地址。便于理解,所谓变量名就是该变量在内存中的地址。变量值:变量值存储在内存中,即该变量所对应的内存单元的内容。在程
5、序中,通过变量名来引用变量的值,本质上就是通过地址来引用内存单元的内容。在语言中,要求对所有用到的变量,必须是“先定义、后引用”。所谓“定义”,就是根据数据类型的不同,编译系统在内存中为其分配相应的单元(参见表2.1),“引用”就是引用该变量的值。,2.2标识符、常量和变量,变量定义的一般格式:存储类型 数据类型 变量名=初值,变量名 2=初值 2;在语言中,要求对变量的定义一般放在函数定义时的形参部分、函数体或复合语句的首部,也可以放在函数的外部。在定义变量的同时进行赋初值的操作称为变量初始化。例如:float x,y;/只定义不初始化,其值不确定 int i=1,j=2;/定义同时初始化变
6、量x、y、i、j的内存分配如图2.1 所示。,如:int,float,char,自己设定,满足标识符规定:字母、数字、下划线,且以字母或下划线开头。,;不可省,2.3整型数据,一、整型常量1.整型常量:即整常数,在语言中可用三种形式表示:(1)十进制(基数字09)。例如 10、36、-26(2)八进制(基数字07,以数字0开头)。例如012、011、017(3)十六进制(基数字09、a/Af/F,以数字0+字母 x 开头)。例如0 x36、0 xaf、0 xAB、0 x38FB 2.整型常量的后缀“L”/“l”:类似于long 型数据,这些常量在内存中 占4 个字节。“U”或“u”:表示无符号
7、整型常数。后缀“L/l”和后缀“U/u”可同时使用以表示无符号长整型数。,如:128L(十进制的128)、300000L(十进制的300000);022L(十进制为18)、065L(十进制为53)、0300000L(十进制为98304);0X22L(十进制为34)、0XAF5L(十进制为2805)、0X300000L(十进制为3145728)。128u,0 x128Au,0126u均为无符号数。0 xA5Lu、023Lu、0X1234Lu。,2.3整型数据,二、整型变量1.整型变量分类整型变量的基本类型符为 int。根据有无符号,整型变量定义时有两个符号修饰符signed和unsigned,分
8、别代表有符号整型和无符号整型变量;根据数值的宽度,整型变量定义时有两个宽度修饰符short和long,分别代表短整型(16b)和长整型(32b)变量。归纳起来C 语言共有六种整型变量(双括号表示可缺省):有符号基本整型signed int有符号短整型 signed short int)有符号长整型 signed long int)无符号基本整型 unsigned int无符号短整型 unsigned short int无符号长整型 unsigned long int,如:int i=1,j=1,k;定义了3个int 型变量i、j、k,各占用4个字节,其取值范围-2147483648214748
9、3647(-231231-1)。变量i、j是定义的同时初始化,其值为1,k只定义但没有初始化,这时k的值Turbo C2.0环境下是一个随机值,不确定,在VC 6.0下为0 xcccccccc。又如:short m,n;unsigned short a,b;short型变量m、n各占用2个字节16位,其取值范围为-3276832767(-215215-1)。Unsigned short型变量a、b各占用2个字节16位,其取值范围为 065535(0216-1).,思考:int a=20000,b=20000,c;c=a+b;c的值为多少?如果c定义为long型是否能解决问题?,2.3整型数据,
10、二、整型变量2.整型变量的存储形式 计算机中的数值是以二进制形式存储的,对于n位的整型数据,若为有符号数(int、short、long)则是以二进制补码形式表示的,最高位为符号位,1代表负,0代表非负,数值位只有n-1位;若为无符号数(unsigned int、unsigned short、unsigned long)则是以二进制原码形式表示的,数值位有n位。有符号数在计算机中用补码表示,0和正数的补码和原码相同;负数的补码就是将该数的绝对值按位取反再加1。,-32768、0!对吗?为什么?,2.3整型数据,二、整型变量3.类型匹配规则 我们知道,不同类型的整型变量的范围和占用的字节数是不同的
11、,那么如何为整型变量赋值?变量是容器,一般情况下,一个整型常量,可以赋给能容纳下其值的整型变量。,例如,宽度为16b的整型常量(-1515-)或(016-)可以赋给宽度为16b或32b(-3131-)或(032-)的整型变量;宽度为32b的整型常量可以赋给宽度为32b的整型变量;宽度为32b的整型常量赋给宽度为16b的整型变量时,从整型常量低位截取16b再赋给16b的整型变量。具体匹配规则参见2.7.3小节赋值运算中的类型转换规则。另外,在函数调用时,要求形参与实参的类型必须匹配,这时我们可以使用后缀。如形参为long int 型,在调用时实参必须用后缀“L/l”如:fun(12L)。,2.4
12、实型常量,一、实型常量 实型也称为浮点型。实型常量也称为实数或者浮点数。在语言中,实数只采用十进制,有二种表示形式:十进制小数形式及指数形式。十进制小数形式:由数码09和小数点组成。例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230等均为合法的实数。注意,必须有小数点。指数形式:由尾数、阶码标志和阶码三部分组成。尾数为实常数,阶码为十进制整常数。其一般形式为:尾数m+阶码标志E/e+阶码n,这三部分都不可缺省。其值为:m*10n.,如:2.0E5、0.5e-7、-2.8E-2等都是合法的 小数点不能单独出现;0.0.e或E的两边必须有数,且其后面必须为整数;如:
13、6E0.2 e5 e/E两侧不能有空格,且尾数、阶码为常量;0.5 E 3,(0.3+0.5)E(2+3),2.4实型变量,一、实型变量实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型,了解就可以)三类。VC6.0中浮点型数据所占的内存空间、数值范围及有效数字(7、16位)见下表:,2.4实型变量,二、关于规格化数与输出精度:对于给定数制N的任意一个实数,都可表示成形如:sa.b0b1bnNk的指数形式,称这样表示的数为规格化数。其中s表示符号,a为整数部分且0aN,a.b0b1bn为小数部分,N为该数制的基,k为指数。计算机内部都是二进制,所
14、以二进制下规格化实数可表示为:s1.b0b1bn2k。实数在内存中一律用规格化数形式存放,其存储格式由数符、阶码和尾数三部分组成。下图为 VC 6.0下实型数据存放形式。另外,由于实型变量是由有限的存储单元组成的,能提供的有效数字总是有限的,因此使用实型数据时存在一定的误差,实际中要注意。,如:void main()float a=12345678.123e5,b;double x=12345678.123e5,y;y=x+20;b=a+20;printf(a=%.2f,b=%.2fn,a,b);/float 型精度丢失 printf(x=%.2f,y=%.2fn,x,y);/double 保
15、持精度 printf(b=%e,y=%en,b,y);/以指数形式输出时为规格化数运行结果如下:a=1234567823360.00,b=1234567823380.00 x=1234567812300.00,y=1234567812320.00b=1.234568e+012,y=1.234568e+012Press any key to continue,2.5字符型数据1.字符常量定义:用单引号括起来的单个普通字符或转义字符.,如 101-A 012-n 376-x61-a 60-0 483-(),例:A-101-x41-65,如 A65,a97,048,n10,如 a A?n 101,转
16、义字符:反斜线后面跟一个字符或一个代码值表示,例 转义字符举例(ch2_001.c,ch2_004.c)main()printf(101 x42 Cn);printf(I say:How are you?n);printf(C Programn);printf(“V C6.0);,运行结果:(屏幕显示)A B CIsay:”How are you?”C ProgramV C6.0,语言程序设计 第二章语法要素,字符常量的值:该字符的ASCII码值,字符常量与字符串常量不同,2.字符串常量定义:用双引号(“”)括起来的字符序列存储:每个字符串尾自动加一个 0 作为字符串结束标志,例:char c
17、h;ch=“A”;,3.字符变量,字符变量用类型说明符char进行定义,如:char ch1=a,ch2;/定义两个字符变量ch1、ch2,同时对ch1初始化 每个字符变量被分配一个字节的内存空间来存储字符的ASCII值,字符常量可以是任意一个ASCII码字符。变量的值就是相应字符的ASCII码值,如字符A的存储形式是01000001(二进制),即十进制的65,所以也可以把它们看成是整型量。语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值(=127)。在输出时,允许把字符变量按整型形式输出,也允许把整型量(=127)按字符形式输出。字符型数据可以参加简单的运算。,如:char ch1=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据类型 运算 表达式
链接地址:https://www.31ppt.com/p-5639926.html