VisualC轻松入门C语法之数据类型

上传人:宝路 文档编号:48188549 上传时间:2018-07-11 格式:PPT 页数:24 大小:171.57KB
返回 下载 相关 举报
VisualC轻松入门C语法之数据类型_第1页
第1页 / 共24页
VisualC轻松入门C语法之数据类型_第2页
第2页 / 共24页
VisualC轻松入门C语法之数据类型_第3页
第3页 / 共24页
VisualC轻松入门C语法之数据类型_第4页
第4页 / 共24页
VisualC轻松入门C语法之数据类型_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《VisualC轻松入门C语法之数据类型》由会员分享,可在线阅读,更多相关《VisualC轻松入门C语法之数据类型(24页珍藏版)》请在金锄头文库上搜索。

1、第2章 C+语法之数据类型计算机的作用无非就是存储和计算,而存储和计算都离不开数据 格式,不同的数据格式意味着存储和计算的方式不尽相同。本章 是C+知识的开始篇章,将着重介绍C+的数据类型,让读者了解 C+具有哪些数据类型。数据类型是构成程序设计的基础,希望读 者能够扎实掌握本章内容,本章主要修行的要点如下。 C+简介:让读者能够了解C+的过去和现今的情况。 简单变量:读者能够学会C+的简单变量,如整型变量、浮点型变 量等。 算术运算符:读者能够使用算术运算符进行简单变量的数学运算 。 枚举、指针和数组:读者将学会枚举、指针和数组数据类型的定 义和使用。 字符串类型:读者将学会string类和

2、C风格字符串。 结构体类型和类类型:读者将学会C+语言理论中最重要的两种复 合类型结构体类型和类类型。2.1 C+发展历史和相关背景 在Visual C+学习中,C+程序设计语言绝对是顽 徒孙悟空,非常难驯服。但读者也不用太担心, 唐僧没有法力都能驯服孙悟空,我们也一样可以 做到,关键在于要让C+带上紧箍咒,这个紧箍咒 就是牢牢抓住面向对象的本质。 美国AT/ 定义一 个整型变量,表示我拥有的苹果数目 MyApples = 7;/ 给该整 型变量赋值为7,表示我现在拥有7个苹果2.3 简单变量的定义和使用 简单变量是指变量中最基本的单元。广义上的变 量还包括数组变量、指针变量、结构体变量和类

3、对象,这些变量相对来说比较复杂,如结构体变 量是由多个简单变量或结构体组成,而类对象则 更复杂,不仅包括多个其他任何类型变量,还可 以包括函数。本节从简单变量入手,慢慢地带读 者了解全部的C+数据类型。2.3.1 整型的定义和字长【本小节示例参考:源代码C02sizeofDataType】 顾名思义,整型就是整数类型,以代数的概念来说,就是 :正整数、零和负整数。而计算机不能像代数中的整数一 样可以表示所有的整数,因此C+中的整型类型只是所有整 数集合的一个子集,也就是只能表示一部分整数。C+提供 了几种宽度不同的整型供开发者选择,按照宽度排序有 char、short、int和long,每种类

4、型都有“有符号”和“ 无符号”两种版本,也就是类似于整数有正整数和负整数 之分,因此,C+整型就有8种可供用户选择。在Win32环境 下(Windows操作系统32位处理器),不同类型的整型如表 2.1所示。2.3.2 浮点型的定义和字长 浮点类型顾名思义就是小数点能够自由浮动的数据类 型,它主要有3种,即float、double和long double。 浮点类型对于字长的要求如表2.2所示。 浮点型的变量读者可以简单地理解为具有小数点的变 量类型,而整型变量则对应于初中代数中的整数,整 数当然就包括正整数、0和负整数。在此需要提醒读者 的是,需要了解各种数据类型,但不要花太多时间去 钻研这

5、些小问题,毕竟我们需要的是掌握程序设计的 方法,而不是做理论研究。就如唐三藏取西经,沿途 收拾妖怪只是为了自己开路,而不是要将全世界的妖 怪都消灭光才算数。2.3.3 布尔类型的定义和运算 【本小节示例参考:源代码C02boolCompute】 布尔类型这个名字比较奇怪,它来源于英国数学 家布尔,该类型的变量取值不像整型一样,可以 取0、1、2、3等多个值,也不像浮点型一样 可以取不连续的值,它的取值就只有两个,即 true或false。布尔类型常用于判断语句中用于判 断该执行哪个代码段,布尔变量可以定义为: bool bReally = true ; / 定义一个布尔型变量,并初始化为tru

6、e bool bTrue = false ; / 定义一个布尔型变量,并初始化为true2.4 算术运算符的基本操作【本节示例参考:源代码C02mathCompute】 读者可能对数学中的各种运算符号记忆犹新,如果不会基 本运算,估计本节没有办法继续下去哦,至少加减乘除总 是一辈子都不会忘记的,在计算机中也同样有各种算术运 算符,如果在程序中有如下的语句: int apples = 3+9 ; / 定义变量apples,初始化为3+9的运算结果 在这个语句中,“3”和“9”是操作数,“+”符号是一个 算术运算符,“3+9”是一个运算表达式,其值为“12”。 C+提供的算术运算符有5种: “+”

7、:加运算符。 “-”:减运算符。 “*”:乘运算符。 “/”:除运算符。 “%”:取模运算符。2.5 枚举、指针和数组 C+除了提供一些基本的数据类型外,还提供了一 些其他额外的数据类型,如枚举、指针和数组类 型,以及将在后面章节讲解的结构体和类类型, 这些统称为复合数据类型。复合数据类型是由其 他数据类型组合,或以基本数据类型为基础衍生 出来的类型。2.5.1 用枚举来设定变量的取值前文已经介绍了常量类型,C+提供了一个enum的关键字用来创建 枚举类型,实质上,枚举类型是常量类型的一种衍生类型,常量 类型可以看作只有一个取值的枚举。假设要设计一个游戏程序, 定义一个游戏角色移动的方向,可以

8、定义枚举类型如下: enum direction east , south ,west ,north; / 定义枚举类型,并规定了4个取值 该语句定义了一个枚举类型direction,这个枚举类型可以表示东 、南、西和北4个方向。对枚举类型的定义,不仅仅是定义了枚举 的含义,而且定义了枚举变量的赋值类型: enum direction east , south ,west ,north; / 定义枚举类型,该枚举类型只能取4个值 direction myDirection; / 定义direction枚举类型的变量myDirection myDirection = east; / 将myDir

9、ection变量赋值为east coutmyDirectionendl; / 输出myDirection变量的值2.5.2 用指针表示变量的住址 【本小节示例参考:源代码C02pointer】 如前文所述,为了将数据信息记录在计算机中, 并可以随时修改,程序必须记录以下3个基本属性 : 信息存放的地址,即这个变量住哪?如某个地址 123654。 变量存储的值,即这个变量是多少?如58。 变量的类型,即这个变量是什么类型的?如int整 型。 一个变量的基本信息,如图2.4所示。2.5.3 数组:多车厢的火车【本小节示例参考:源代码C02array】 数组类型是高级程序设计语言中最常用的复合数据类

10、型,在多项 式或矩阵应用等科学计算中经常被使用。数组类型是一个由简单 数据类型或复合数据类型组成的复合数据类型,因此组成数组的 基本元素可以是简单的数据类型,也可以就是数组本身。例如, 数组可以存放30个整型的值,用来表示一个班30个学生的语文考 试成绩,数组的声明应该指出: 数组中每个元素的类型:如必须指明该数据中的元素类型为整型 int。 数组名:必须给该数组(复合数据类型变量)命名,如命名为 Chinese。 数组的元素数目:如需要存放30个学生的语文成绩,则元素数目 设定为30。 例如可以声明一个数组,用来存放一个班30个学生的语文考试成 绩,则定义代码如下: int Chinese3

11、0 ;/ 定义一个整型的具有30个元素的数组2.6 string类和C风格字符串 顾名思义,字符串就是由字符组成的串,也就是 由多个字符组成的变量,在C语言和C+语言中都 分别有自己的字符串表示方式。本节就讲解这两 种语言的字符串定义和使用的方式。2.6.1 不好好学C+只能选择:C风格字符串字符串是什么呢?就是字符组成的序列,字符并没有限定什么字 符,基本上ASCII码的字符都可以当作字符串中的序列元素,如 “abc”、“c3”或“123”都可以。在前文中讲解了数组的使 用,那么字符串也可以使用数组来表示: char name10 ; / 定义一个具有10个元素的字符型的数组 该行代码定义了

12、一个具有10个字符类型的元素的数组,也可以说 是由10个字符组成的字符串,并用这个字符串来表示一个名字, 使用字符数组来表示字符串称为“C风格字符串”。但是使用字符 数组来表示字符串有很多不方便的地方: 修改困难。如前文所述,name是一个地址常量,因此不能直接对 其赋值,因此name的初始化和赋值都要通过逐个字符赋值操作。 长度限制。name数组的长度是10,也就意味着name字符串最大只 能表示10个字符的名字,而且最后一个元素还要用“0”字符数 组结束标记,因此真正用于存储名字的有效字符只剩下9位。 粒度太小,不直观。对于软件开发,往往需要直接对字符串进行 赋值或者修改,而数组型表示的字

13、符串则要对数组的每个元素进 行修改,粒度太小,增加了软件开发的工作量。2.6.2 string如何解放C程序员的繁重劳动 【本小节示例参考:源代码C02stringUse】 C+是基于C的基础上发展而来的,因此C+也支持 C风格字符串的使用,此外,C+还引入了string 类的概念,该类是C+标准类,位于std名称空间 内(只要是标准类或标准对象,都位于std名称空 间内),string类提供了丰富的接口,如使用C风 格的字符串,即使用字符数组的方式表示字符串 ,则无法直接查看该字符串的长度,只有查看源 码中定义字符数组的容量,或者采用前文讲述的 sizeof的方式“巧妙地”计算出数组的长度,

14、再 或者是逐个检测字符数组元素,并逐个数数,直 到找到最后一个元素“0”为止。2.7 数据类型是应用软件的细胞数据类型在程序设计中是非常重要的,不管是面向过程的 程序设计语言还是面向对象的程序设计语言。在面向过程 的程序设计语言中,不仅仅是简单变量,主要还依赖于类 的定义。类的对象实质上也是一种数据类型的变量,称为 类类型。 数据类型可以说是应用程序的细胞,计算机的实质是计算 和存储,这两个操作都离不开数据对象。前文已经给各位 读者介绍了基本数据类型,简单的变量可以看作是应用程 序的简单细胞,而接下来的内容是结构体类型和类类型, 这两种类型是简单细胞组成的“复杂细胞”,当然,“复 杂细胞”也可

15、以由“较小的复杂细胞”组成,也就是说, 结构体和类类型也可以由较小的结构体变量或类对象组成 。2.8 结构体类型【本小节示例参考:源代码C02structUse】 如果读者学过数据结构,那么对结构体肯定是非常熟悉的, 当然,如果痛恨数据结构,估计对结构体也够头疼的了。的 确,结构体很麻烦,特别是带有指针的结构体,进而组成树状或 图状的数据结构。不过请读者放心,本书不研究这些,只需要掌 握最基础的且是最实用的部分即可。假设要存储一个学生的信息 ,需要记录的学生信息由学生秘书整理好一张学生信息表,如表 2.5所示。2.9 “类”类型 “类”类型的定义和结构体类型的定义是极为类 似的,可以这么说,C

16、+中的结构体类型已经和C 语言的结构体类型截然不同,C+中的结构体类型 是地地道道的类类型。类的定义的详细内容将在 面向对象相关章节介绍。“类”类型与 “double”类型、“int”类型或“struct”类型 的地位是一样的,都是一种“数据类型”。2.9.1 “类”类型定义的语法形式【本小节示例参考:源代码C02classUse】 假设前文所提到的学生信息要用到类来实现,即把一个具体的学生(人) 看成一个对象,而把学生(这类人)看成一个类,那么可以定义为如代码 示例2.9所示,这里的代码除了将struct变更为class外,还多了一些访问 控制符,如private和public,以及多了两个类的成员函数。2.9.2 “类”类型的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号