计算机所处理的数据以一定形式存放在内存中,数据的存储方.ppt
《计算机所处理的数据以一定形式存放在内存中,数据的存储方.ppt》由会员分享,可在线阅读,更多相关《计算机所处理的数据以一定形式存放在内存中,数据的存储方.ppt(88页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、计算机所处理的数据以一定形式存放在内存中,数据的存储方式以及能够进行的合法运算都与数据类型直接相关。C+的特点之一就是提供了丰富的数据类型,以便处理各种不同的数据。数据类型总是与运算封装在一起,本质上是面向对象的。本章将简要介绍C+中的数据类型及相关运算,以及常量、变量、表达式、语句等,最后介绍简单的输入输出方法。,第二章 C+基础知识,第二章 C+基础知识,21 C+的词法单位,25 运算符、表达式和语句,26 简单的输入输出,24 数组与字符数组,23 常量和变量,22 C+ 中的数据类型,ok,2.1 C+的词法单位,211 C+的字符集,212 关键字,213 标识符(ID,ident
2、ifier),214 标点符号,ok,2.1.1 C+的字符集,ASCII码字符集是计算机中的常用字符集。它包括英文字母及阿拉伯数字等128个字符,存储一个ASCII码占用一个字节单元。,由于汉字处理的需要,又出现了汉字国标码等对应于不同语言的字符集。国标码的存储占用两个字节单元。,Unicode字符集对各类字符进行统一的双字节编码。它包括了世界上多种语言的基本字符,最多可容纳65536个字符。 ASCII码字符集,国标码字符集都是它的子集。,ok,C+的字符集,C+语言使用下列基本字符来构成词法单位:,2.1.1结束,2.1.2 关 键 字,关键字(keyword)又称保留字。是由系统定义的
3、具有特定含义的英文单词。关键字不能另作它用。,C+区分大小写,关键字全部由小写字母组成。标准C+(ISO14882)定义了74个关键字,具体的C+编译器还会做一些增删。常用关键字及分类见表2.1。,ok,关 键 字,表2-1 C+常用关键字及分类,ok,关 键 字,2.1.2结束,2.1.3 标识符,标识符(Identifier,ID )是程序员定义的“单词”,用来给变量、常量、数据类型、函数等命名。,合法标识符由字母或下划线开始,由字母、数字、下划线组成,其有效长度为131个字符,长度超过31个字符者只识别前31个字符,VC+标识符长度为1247个字符。,建议使用有一定含义的英文单词或拼音序
4、列作标识符,以提高可读性;另外尽量不用下划线或双下划线打头,以免与系统定义的关键字冲突。,ok,标识符,例: 判断下面哪些是合法的标识符:,MyFile,Salary 94,amount,void,94Salary,Salary94,$amount,f3.5,Num_of_Student,2.1.3结束,2.1.4 标点符号,标点符号包括:#、( )、 ,、 :、 ;、 、 等。,标点符号的作用:,有一定的语法意义。如字符和字符串常量分别用 和 “ ”引起来。,对语法符号起分隔作用。如 ;等,2.1.4结束,2.2 C+中的数据类型,ok,C+对基本数据类型也分别进行了封装,称为内置数据类型,
5、内置数据类型不仅定义了数据类型,还定义了常用操作。本节仅介绍各种基本数据类型的定义,常用操作将在后面介绍。,C+为强类型语言,所有数据的使用严格遵从“先说明后使用”的原则,以便编译器进行编译。,整型用来存放整数,整数(有符号的整数)在内存中存放的是它的补码,无符号数没有符号位,存放的就是原码。整数占用的字节数与机型有关,32位机上占用4个字节。,字符型用来保存字符,存储的是该字符的ASCII码,占用一个字节。如大写字母A的ASCII码为65,在对应的一个字节中存放的就是65。字符型数据从本质上说也是整数,可以是任何一个8位二进制整数。 由于汉语系字符很多,用ASCII字符集处理远远不够,因此又
6、创立了双字节字符集(DBCS:double-byte character set),每个字符用两个字节来编码。为便于软件的国际化,国际上一些知名公司联合制定了新的宽字节字符标准Unicode。该标准中所有字符都是双字节的,不同的语言和字符集分别占用其中一段代码。这种用统一编码处理西文、中文及其它语言符号,就是unicode码。C+同时也支持宽字符类型(wchar_t),或称双字节字符型。,实型和双精度型都用来存放实数,两者表示的实数精度不同。实数在内存中以规范化的浮点数存放,包括尾数、数符和阶码。数的精度取决于尾数的位数,32位机上实型为23位(因规范化数的数码最高位恒为1,不必存储,实际为2
7、4位),双精度为52位。,逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC+6.0中为1个字节。布尔型在运算中可以和整型相互转化,false对应为0,true对应为1或非0,无值型主要用来说明函数的返回值类型,将在函数一章中具体介绍。,基本数据类型还可以加上一些修饰词,包括:signed(有符号)、unsigned(无符号)、long(长)、short(短)。参见下表:,2. 2结束,VC+中所有基本数据类型,2.3 常量和变量,2.3.1 变 量,2.3.2 字面常量,2.3.3 常变量及常量说明符const,在程序中,常量和变
8、量是用来表示数据的;常量又分为字面常量、常变量;,ok,2.3.1 变 量,1 变量说明,2 变量赋初值,变量,在程序中是指可以改变值的量;变量必须用标识符进行标识,称为变量名;变量有类型之分,如整形变量、字符变量等;任何变量都必须先说明后使用;一是便于编译程序为变量分配空间,二是便于编译时进行语法检查;变量使用的第一步,是给变量赋初始值;,ok,变量说明,在C+中,变量说明的一般格式为:存储类型数据类型 变量名1,变量名2, ,变量名n;,下面是变量说明的几个例子:int i, j, k; /说明三个整型变量i, j, kfloat x, y, z; /说明三个实型变量x, y, zchar
9、 c1, c2; /说明两个字符型变量c1, c2double dx; /说明一个双精度型变量dx,变量说明 结束,变量赋初值,(1)变量说明时直接赋初值。例如:int a=3, b=4, c=5;float x=3.0;(2)用赋值语句赋初值。严格的说,只有前者可称赋初值例如:float x, e;x=3.5; e=2.71828;,2.3.1结束,给变量赋初值称为初始化,有两种方法:,2.3.2 字面常量,1. 整型常量,4. 字符串常量,3. 字符型常量,2. 实型常量,字面常量,指程序中直接给出的量;常量的值在程序执行过程中保持不变;并且存储在程序区,而非数据区;根据取值和表示方法的不
10、同,可分为以下几种:,ok,整型常量,十进制表示法,八进制表示法,十六进制表示法,其他表示法,即整数,可以有多种表示方法:,ok,整数的十进制表示方法,十进制表示与我们熟悉的书写方式相同。如15 -24,ok,整数的八进制表示,八进制表示以0开始,由数字07组成,用来表示一个八进制数。如:012 /八进制数12,即十进制数10-0655/八进制数-655,即十进制数-429,ok,整数的十六进制表示,十六进制以0X(大小写均可)开始,由数字09和字母AF(大小写均可)组成,用来表示一个十六进制数。以下是一些常整数的例子:0x32A /十六进制数32A,即十进制数810-0x2fe0 /十六进制
11、数-2fe0, /即十进制数-12256,ok,整数的其他表示方法,整型常量还可以表示长整数和无符号整数。长整型常数以 L 或 l 结尾,无符号常整数以 U 或 u 结尾,以 U L 或 L U(大小写均可)结尾则可表示无符号长整型常数。例如:-84L/十进制长整数-84026U/八进制表示的无符号整数260X32LU /十六进制表示的无符号长整型数32。,整数 结束,实型常量,(1)一般形式与平时书写形式相同,由数字 0 9和小数点组成。例如:0.23 -125.76 0.0 .46 -35.,(2) 指数形式(也称为科学表示法)表示为尾数乘以10的次方形式,由尾数、E或e和阶数组成。指数形
12、式要求在E或e前面的尾数部分必须有数字,后面的指数部分必须为整数。,例 : 判断下列表示是否合法,123E12,-.34e-2,E4,1.43E3.5,包含小数点和10的幂的数为实型常量,有两种表示方法:,实数 结束,字符型常量,字符常量是用单引号引起来的单个字符。在内存中保存的是字符的ASCII码值。在所有字符中,有些是可显示字符,通常就用单引号引起来表示:a /字符a /字符4/字符4 /空格字符有些是特殊情况字符,如不可显示的字符等,c+使用转义序列表示方法,如(祥见表2-3,此处略):n /换行 / 字符,字符常 结束,4. 字符串常量,字符串常量与字符型常量的区别,字符串常量a占两个
13、字节,存放a和 0,值为0x6100,字符型常量a占一个字节,存放a,值为0x61,2.3.2结束,用双引号引起来的若干个字符称为字符串常量。例如:I am a Chinese.,123, a , ,2.3.3 常变量及常量说明符const,用常量说明符const给字面常量起个名字(标识符),这个标识符就称为标识符常量;因为标识符常量的说明和引用形式很像变量,所以也称常变量;例如:const float PI=3.14159;const int Number_of_Student=100;常变量必须也只能在说明时进行初始化;常变量初始化之后,不允许再被赋值;常变量必须先说明后使用;常变量存储在
14、数据区,并且可以按地址访问,编译时系统对常变量进行类型检查。C+建议使用常变量,而不要使用文字常量。,2.3.3 结束,2.4 数组与字符数组,2.4.1 数 组,2.4.2 字 符 数 组,本节介绍一种用户自定义的导出数据类型 数组类型,ok,2.4.1 数组,数组是有限个同类型元素的有序集合,这些元素有一个共同的名字,每个元素以其在数组中的位置区分,位置用下标表示。 例如数列或向量就可以看作一个数组,其中的元素用一个下标即可确定。 矩阵也可看作一个数组,其中的元素需要用“行”、“列”两个下标确定。 数组下标的个数称作维数,上述代表数列的数组和代表矩阵的数组分别称为一维数组和二维数组。本节只
15、介绍一维数组。,ok,一维数组,定义一个一维数组的一般格式为: 存储类型 数据类型 数组名常量; 数据类型指的是数组中元素的数据类型,可以是C+中定义的任何一种数据类型。 写在中括号中的常量用来定义数组大小,即数组中元素的个数。例如:int m5; /定义数组m, 其中有5个整数 const int N=3; float xN;/数组x中有3个实数,ok,一维数组,数组在存储单元中是按下标的顺序连续存放的,任何一个元素都可以单独访问,其标识方法是用数组名和下标: 数组名表达式 表达式用来计算下标值。C+中规定数组第一个元素的下标为0。,ok,一维数组,C+中数组大小在编译时确定,编译系统按照定
16、义为数组分配一段连续的存储单元,这段单元的大小也是不能改变的,因此数组大小不能用变量定义,而只能是一个正整数常量。 下列定义是非法的:int count;float scount;/数组个数不能是变量,且必/须在定义时指明;const float Num=3;int nNum;/数组个数不能是实数;对数组的访问指的是对数组元素的访问,不能直接将数组名作为访问对象,对数组赋值也必须对每一个元素逐个赋值。参见下例:,ok,一维数组,1,1,2,3,1,输出,2.4.1结束,1,2,3,1+2=3,【例21】使用数组的简单例子。# include void main() int int_arr4;i
17、nt_arr0=1; int_arr1=1; int_arr2=2;int_arr3=int_arr1+int_arr2;coutint_arr0n int_arr1n int_arr2n int_arr3 n; ,2.4.2 字符数组,如果数组中的元素为字符,就称为字符数组。例如:char string110; /可用来保存10个字符的字符数组;char city_name1 = N,a,n,j,i,n,g; /可用来保存7个字符的字符数组;C+中字符数组用来保存字符串。允许直接用字符串常量给字符数组初始化。例如:char city_name2=”Nanjing”;用字符串初始化,字符数组会
18、自动加上一个串结束符0 。串结束符在字符串操作中具有十分重要的意义,因此在定义字符数组大小时,要注意留出足够的空间保存串结束符。,ok,字符数组,为了处理字符串,C+中提供了若干字符串处理函数,这些函数定义在文件string.h中,其中包括: strlen(s),返回字符串s的实际长度(不包括0);strcpy(s1,s2),将字符串s2中0之前的所有字符依次赋值到字符串s1中,最后再加上一个0。由于不能直接对字符数组名赋值,所以将一个字符串的值赋给另一个字符串必须用字符串拷贝函数完成。例如:char string220;string2=”VC+”;/非法strcpy(string2, “VC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机所处理的数据以一定形式存放在内存中数据的存储方
限制150内