资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,3,章 数据类型基础,第,3,章,数,据,类型基础,第3章数据类型基础,1,目 录,数据的输入、输出,4,程序设计中的数据地位与作用,1,常量、变量和标识符,2,基本数据类型,3,不同类型数据间的转换,6,运算符与表达式,5,目 录数据的输入、输出4程序设计中的数据地位与作用1常量、变,2,程序,要对数据进行操作处理:,处理的对象是,数据(其在程序中要有合法的表现形式),而数据又通过,运算符和表达式,进行操作,程序设计中的数据地位与作用,1,程序要对数据进行操作处理:程序设计中的数据地位与作用1,3,例:计算半径为,10 cm,的圆的面积。,程序如下:,main(),float,r,area,;,r,=,10,;,area,=,3.14,*,r,*,r,;,printf(%fn,area,);,输出,:,314.000000,程序中用到的数据:,r,、,area,、,10,、,3.14,对数据进行的运算:,*,、,=,程序设计中的数据地位与作用,1,例:计算半径为 10 cm的圆的面积。程序如下:main(,4,数据类型决定,:,1.数据占内存字节数,2.数据取值范围,3.其上可进行的操作,C,数,据,类,型,基本类型,构造类型,指针类型,空类型,void,定义类型,typedef,单精度型,float,双精度型,double,字符类型,char,整 型,实型,枚举类型,enum,数组,共用体,nion,结构体,struct,短整型,short,长整型,long,整型,int,数据往往都是以某种特定形式存在的,,C,语言提供的数据类型,如下:,程序设计中的数据地位与作用,1,数据类型决定:C基本类型构造类型指针类型空类型 void定义,5,3.2.1,常量,整型常量,:10、28;,实型常量,:3.14;,字符常量,:,a、A,;,字符串常量,:“,Hello”,程序运行过程中,,值不发生改变,的量称为,常量,。,直接常量,直接常量(即,常数,):10、3.14等都是直接常量。,常量分为:,常量,可以直接用于输入或赋给其他变量,常量、变量和标识符,2,3.2.1 常量 整型常量:10、28;程序运行过程中,6,整型常量,三种形式:,十进制,整数:由数字0,9和正负号表示.如 32、-8、0等,八进制,整数:由数字0开头(注意:不是字母,o),后跟数字0,7表示.如 012、011、016,十六进制,整数:由0,x(,或0,X),开头,后跟0,9,a,f,A,F,表 示.如 0,x123,0Xff,注意,:八进制数、,十六进制数的,合法数字表示,,十六进制数,中字母大、小写等同,0,xaa,等同于0,xAA,常量、变量和标识符,2,3.2.1,常量,整型常量注意:八进制数、十六进制数的合法数字表示,十六进,7,#include,main(),int a,b,c;,a=100;b=0100;c=0 x100;,printf(a=%d,b=%d,c=%dn,a,b,c);,%,d,控制按十进制格式输出,输出结果是:,a=100,b=64,c=256,举例:,常量、变量和标识符,2,3.2.1,常量,#include%d控制按十进制格式输出,8,实型常量(浮点数),即带小数点的实数。,表示形式:,十进制数形式,:(必须有小数点)如,0.1234、.1234、1234.、0.0,指数形式,:,由,尾数、字母,e,或,E、,指数,三部分组成。,如,3.85,e4,或,3.85,E4,均表示,3.8510,4,,,(,e,或,E,之前必须有数字;指数必须为整数),规范化的指数形式,:,在字母,e(,或,E),之前的尾数中,小数点左边应有一位(且只能有一位)非零的数字。例如,:3.478e2,常量、变量和标识符,2,3.2.1,常量,实型常量(浮点数)规范化的指数形式:常量、变量和标识符23.,9,字符常量,字符常量,区分大小写,如,a、I、A、n,如,a、A,是两个不同的字符常量,字符常量的值:,该字符的,ASCII,码,值,如,a,在内存的字节中存放的,ASCII,值是,97,特殊的字符常量,:,以一个“,”开头的字符序列。,(,转义字符,),定义:用,单引号,括起来的单个,普通字符,或,转义字符,.,常量、变量和标识符,2,3.2.1,常量,字符常量 字符常量区分大小写如 a、I、A、,10,转义字符,含义,n,v,r,a,ddd,t,b,f,“,xhh,转义字符,含义,换行,垂直制表,回车,响铃,单引号,3位8进制数代表的字符,水平制表,退格,换页,反斜线,双引号,2位16进制数代表的字符,“,转义字符,”:即 将反斜杠()后面的字符转换成另外的意义。,如:,n,中 的“,n”,不代表字母,n,而作为“换行”符。,(,仍代表一个字符,),以“”开头的特殊字符,常量、变量和标识符,2,3.2.1,常量,转义字符含义nvradddtbf,11,main(),printf(%c,%cn,a,A);,printf(%d,%dn,a,A);,printf(%c,%cn,a,-,32,A+1);,%,c,控制字符形式输出,%,d,整数格式输出字符常量的,ASCII,码值,程序输出结果是:,a,A,97,65,A,B,由于字符常量存放的是,ASCII,码值,所以字符常量可以同数值常量一样参加算术运算。,常量、变量和标识符,2,main()%c控制字符形式输出%d整数格式输出字符常量的,12,字符常量与字符串常量不同,字符串常量,定义:用,双引号(“”),括起来的零个或多个,字符,简称:,字符串,如,“STRING”,存储:,每个字符串尾,自动,加一个,0,作为字符串结束标志,a,a,0,例,a,“,a,”,例,空串 “”,0,例 字符串“,STRING”,在内存中,S T R I N G,0,常量、变量和标识符,2,3.2.1,常量,字符常量与字符串常量不同字符串常量a a 0例 a,13,main(),printf(Computer);,printf(nI am a boy!n);,printf(%sn,STRING);,程序输出结果是:,Computer,I am a boy!,STRING,双引号、单引号是字符常量和字符串常量的标记,字符串和字符常量是两个不同的概念。,常量、变量和标识符,2,3.2.1,常量,main()程序输出结果是:双引号、单引号是字符常量和字符串,14,#define PI 3.14,main(),float r,circle,area;,r=2.4;,circle=2*PI*r;,area=PI*r*r;,printf(circle=%f,area=%fn,circle,area);,程序中用#,define,命令行定义,PI,代表常量3.14,,此后凡在本文件中出现的,PI,都代表3.14,,可以和常量一样进行运算。,符号常量,C,语言中特殊常量,符号常量 即,给常量起一个名。,3.2.1,常量,常量、变量和标识符,2,#define PI 3.14 程序中用#define命令行,15,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列称为,标识符,。,规定标识符只能由,字母、数字和下划线,三种字符组成,并且,第一个字符必须为字母或下划线,。,例:判断下列标识符号合法性,area、sum、,a&b、$234,、_above、PI、name、Name、class、CLASS,标识符,3.2.2,变 量,常量、变量和标识符,2,用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的,16,3.2.2,变 量,#define PI 3.14,main(),float,r,c,area,;,r=2.4;,printf(c=%f,area=%fn,c,area);,r,、c,和,area,就是变量名,命名规则应遵守标识符命名规则,变量的定义,程序运行过程中,,值可改变,的量称为,变量,。每一个变量都应该有一个名字作为标识。,常量、变量和标识符,2,3.2.2 变 量#define PI 3.14 r、c和,17,变量定义的一般,格式,:,数据类型 变量1,,变量2,变量,n;,C,语言所允许的任何数据类型,包括,基本数据类型,及,构造数据类型,等,合法标识符,例:,int,i,;,float,data;,变量必须遵从“,先定义,后使用”的原则。,如:,int i,;,i=10,;,(将10这个值赋给,i,这个变量),变量定义,可执行语句,3.2.2,变 量,常量、变量和标识符,2,变量定义的一般格式:C语言所允许的任何数据类型,包括基本数据,18,变量的赋值与初始化,赋值格式:,变量名表达式,例:,a=10;,变量初始化,定义变量时给变量赋初值,称为,变量初始化,。,格式:类型符 变量,1=,值,1,变量,2=,值,2,;,例:,int a=1;b=3;c=100;,3.2.2,变 量,常量、变量和标识符,2,变量的赋值与初始化3.2.2 变 量常量、变量和标识符2,19,整型数据在内存中的,存放,形式,:,数据在内存中是以,二进制形式,存放的。,一个,int,整数,VC,环境下,通常用,4,个字节,存放:其中最高位用来存放整数的符号,,0,表示,正,整数,,1,表示,负,整数,实际上,一个,有符号整数,在内存中,是以,补码形式,存放的。,若说明为,无符号整数,,其中,最高位不再用来存放整数的符号,,二进制位全部用来存放整数数值,因此无符号整数不可能是负数,3.3.1,整型数据,基本数据类型,3,整型数据在内存中的存放形式:一个int整数VC环境下通常用,20,数值的表示方法,原码、反码和补码,原码,:,最高位为符号位,其余各位为数值本身的绝对值,反码,:,正数:反码与原码相同,负数:符号位为,1,,其余位对原码取反,补码,:,正数:原码、反码、补码相同,负数:最高位为,1,,其余位为原码取反,再对整个数加,1,基本数据类型,3,3.3.1,整型数据,数值的表示方法原码、反码和补码基本数据类型33.3.1,21,原码,反码,补码,+7,00000111,00000111,00000111,-7,1,0000111,1,1111000,1,1111001,+0,00000000,00000000,00000000,-0,10000000,11111111,00000000,数的范围,01111111,11111111,(-127+127),01111111,10000000,(-127+127),01111111,10000000,(-128+127),(用一字节表示数),负数补码,转换成,十进制数,:最高位不动,其余位取反末位加,1,例 补码:,11111001,取反:,10000110,末位加,1,:,11000111=-7,基本数据类型,3,原码反码补码+70000011100000111000001,22,分类,:,归纳起来,可以用以下6种整型变量。即:,有符号,基本整型,signed,int,有符号,短整型 ,signed,short,int,有符号,长整型 ,signed,long,int,无符号,基本整型,unsigned int,无符号,短整型,unsigned short int,无符号,长整型,unsigned long int,3.3.1,整型数据,基本数据类型,3,分类:3.3.1整型数据基本数据类型3,23,实型数据在内存中的存放形式,一个实型数据在,内存中占4个字节,(32位)。,实型变量的分类,(,注意其有效位,),C,实型变量分为单精度(,float,型,)、双精度(,double,型,)和长双精度型(,long double,),三类。,实型变量也应在使用前加以定义。如:,float,x,,,y,;,(,指定,x,、,y,为单精度实数,),double
展开阅读全文