




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章C 程序设计基础 内容摘要 C 一种全新的简单 安全 面向对象的程序设计语言 是专门为 NET的应用而开发的语言 C 语言从C和C 演变而来 尽管借鉴了C和C 的许多东西 但是在一些诸如名字空间 类 方法和异常处理等特定领域之间还存在着巨大的差异 C 提供了方便的功能 如垃圾收集 类型安全 版本控制 等等 本章通过对数据类型 运算符 表达式 结构 枚举及面向对象等语法进行讲解 使读者掌握C 程序的基础内容 学习目标 掌握c 数据类型了解常量与变量掌握运算符和表达式的运用了解数组的使用熟悉掌握各种流程控制语句了解C 面向对象的基本概念 2 1C 入门语法 编程语言都要处理数据 而数据类型又不相同 要想使计算机了解这些数据 必须让程序语言描述出各种数据的类型和处理方法 本节主要介绍C 的基本语法 包括C 的数据类型 运算符 2 1 2数据类型 在程序设计中 数据是程序的必要组成部分 是程序处理的对象 不同的数据有不同的数据类型 不同的数据类型有不同的数据结构和存储方式 并且参与的运算也不同 C 的数据类型采用了类似于C和C 语言的数据类型表示形式 但又有所改进 C 将所有的数据类型分为两大类 值类型和引用类型 2 1 2数据类型 1 值类型值类型通常用来表示基本类型 如整型 实型 布尔型等基本数据类型都是值类型 C 的值类型主要包括 整数类型 布尔类型 实数类型 字符类型 结构和枚举类型 2 1 2数据类型 整数类型C 定义了8种整数类型 这种8种整数类型数据在内存中占用的内存位数各不相同 布尔类型布尔类型用来表示 真 和 假 的数据类型 对应的 NETFramework类型为 System Boolean 在C 中布尔类型值只有两个 true和false 这与C C 不同 在C C 语言中 0可以表示为 假 任何非0值都表示为 真 实数类型实数又称为浮点数 实数数据有两种表示形式 单精度 float 和双精度 double 这两者之间主要的区别是取值范围和精度不同 2 1 2数据类型 字符类型C 提供了字符 char 来处理ASCII字符和Unicode编码的字符 char对应的 NETFramework类型为System Char char类型数据一般用单引号括起来 2 1 2数据类型 结构类型在实际生活中 经常把一组相关的信息放在一起 记录一本书的相关信息如书名 作者和内容等 如果按照简单的管理 每一条记录都要放到三个不同的变量中 这样的工作量很大 也不够直观 C 结构体可以解决这个问题 把一系列相关的变量组织成为一个单一实体的过程 称为生成结构的过程 这个单一实体的类型就叫做结构类型 每一个变量称为结构的成员 结构类型的变量采用struct来进行声明 struct类型名称 主体 2 1 2数据类型 枚举类型枚举是值类型的一种特殊形式 为简单类型的常数值提供一种方便记忆的方法 枚举类型的定义形式一般为 enum枚举名 枚举值表 2 1 2数据类型 2 引用类型引用类型与值类型相比 引用类型不存储实际数据 而存储实际数据的引用 即地址 具体情况就是 当将一个数值保存到一个值类型变量后 该数值实际上复制到变量中 而把一个值赋值给一个引用类型时 仅是引用 保存数值的变量地址 被复制 而实际的值仍然保留在相同的内存位置 C 提供的引用类型有 类类型 字符串类型 数组 接口类型和委托类型 这些会在后面的章节进行详细介绍 2 1 2变量和常量 无论编写任何应用程序 数据都必须以某种方式表示 变量和常量在编写应用程序时经常用到 变量和常量的使用让代码更具有可读性 更容易维护 2 1 2变量和常量 1 声明常量常量以const关键字声明 后面紧跟数据类型和赋值语句 常量的定义语法如下所示 const数据类型变量名 一个固定的值 常量的命名规则 带有私有访问的常量必须以骆驼命名发声明 并以一个下划线开头 带有共有修饰符 首保护修饰符的常量必须以帕斯卡命名法声明 2 1 2变量和常量 2 声明变量变量名一般都是小写字母 如果变量名比较长 可以第二个单词首字母大写 变量按如下的方式声明 访问修饰符数据类型变量名称 2 1 3表达式和运算符 运算符是一个术语或者符号 可以接受一个或者多个表达式 即操作数 作为输入并返回值 C 提供了大量的运算符 这些运算符是指定在表达式中执行哪些操作的符号 通常允许对枚举进行整型运算 例如 表达式是由一个或者多个操作数以及零个或者零个以上的运算符所组成的序列 可以通过计算得到一个值 对象 方法或者命名空间等结果 表达式可以包含文本值 运算符 方法调用及操作数 或者简单名称 简单名称可以是变量 方法参数 类型成员 命名空间或者类型的名称 2 1 3表达式和运算符 1 运算符的分类运算符就像数学运算中用到的各种符号 起到操纵各种变量的信息 用于执行加法 减法等运算 根据运算符的作用 运算符大致可以分为赋值运算符 算术运算符 关系运算符 条件运算符 符合运算符和其他运算符6类 2 1 3表达式和运算符 赋值运算符赋值运算符 将右操作数的值存储在左操作数表示的存储位置 属性或者索引器中 并将值作为结果返回 操作数的类型必须相同 或者右边的操作数必须可以隐式转换为左边操作数的类型 算术运算符算术运算符用于整型或者浮点型数据 完成算术运算 关系运算符关系运算符 relationaloperators 决定值和值之间的关系 2 1 3表达式和运算符 条件运算符C 中使用条件运算符 使程序更简洁地表达那些简单的if else结构 条件运算符是惟一的三目运算符 条件运算符 根据布尔型表达式的值返回两个值中的一个 其使用格式如下 条件表达式 条件为真时的表达式 条件为假时的表达式 复合运算符复合运算符实际上是一种缩写形式 使得对变量的改变更为简洁 复合运算的一般形式为 变量符合赋值运算符表达式其他运算符除了上述的运算符之外 还有标点运算符 sizeof运算符 类运算符 new运算符等 2 1 3表达式和运算符 2 运算符的优先级 2 1 3表达式和运算符 3 表达式表达式 expression 由操作数 operand 和运算符 operator 构成 可以通过运算产生一个结果或者完成某种操作 如果为变量赋值 可以在计算窗口 对话框 文本对象等所有使用函数与变量的地方使用表达式 表达式由函数 变量 运算符 数字 字母 字符串 常数以及为其加注释组成 也可以理解为是由一个或者多个运算符连接多个变量而形成的语句 2 1 4简单类型转换 装箱和拆箱是C 类型系统的核心概念 通过允许一个值类型转换为引用类型或者从一个引用类型转换成值类型 这种机制形成了值类型和引用类型之间等价连接 即任何数据都可以被看作对象 2 1 4简单类型转换 1 装箱转换装箱转换是指一个值类型隐式地转换成一个object类型 或者把这个值类型转换成一个被该值类型应用的接口类型 interface type 把一个值类型装箱 也就是创建一个object实例并将这个值复制给这个object 2 1 4简单类型转换 2 拆箱转换和装箱转换正好相反 拆箱转换是指将一个对象类型显示地转换成一个指类型 或者是将一个接口类型显式地转换成一个执行该接口的值类型 拆箱的过程分为两步 首先 检查这个对象实例 看其是否为给定的值类型的装箱值 然后 把这个实例的值拷贝给值类型的变量 2 2数组 数组是相同类型对象的集合 数组实际上可以是任意长度 这意味着可用于存储数千乃至数百万个对象 但其大小必须在创建数组时就确定下来 数组中的每一项都由一个索引来访问 索引只是一个指示对象在数组中的存储位置或者槽的数字 数组既可用于存储引用类型 也可用于存储值类型 数组根据存储数据的形势可分为一维数组和多维数据 数组是一个经过索引的对象集合 一维数组结构相对比较简单 以线性方式存储了固定数目的项 仅仅需要一个索引值就可以确定任何一项 2 2数组 在C 中 数组声明中的方括号必须紧跟数据类型 因此 可以使用下面的语法来声明整数类型的数组 int MyArray 一旦声明了数组 就可以使用New关键字来设置其大小 int MyArray 声明数组MyArray newint 10 设置他包含10个int对象的大小 2 3控制语句 控制语句用于控制程序的流程 以实现程序的各种结构方法 由特定的语句定义符组成 C 有9种控制语句 可以分成三类选择语句 循环语句和跳转语句 条件语句包括if语句和switch语句 循环语句包括dowhile语句 while语句和for语句 跳转语句包括break语句 goto语句 此语句尽量少用 因为他不利于结构化程序设计 过多的使用会使程序流程无规律 可读性差 continue语句和return语句 2 3 1条件语句 条件语句又称为选择语句 判断一个表达式的结果真假 是否满足条件 根据结果判断执行哪个语句块 选择语句分为if语句和switch语句两种 1 if语句在C 语法中 选择语句的语法如下 if和else是关键字 if 表达式 代码片段1 else 代码片段2 如果表达式的值为true 则运行代码片段1 否则运行代码片段2 以下if语句用于求一个数的绝对值 如果num的值大于0 就重置设置变量result获取num的值 否则就获取num对应的正数值 2 3 1条件语句 2 switch语句在设计多路分支程序时 可以选择之前讲到使用 elseif语句 但对于分支非常多的情况下 使用这些语句写成的代码可读性不高 执行效果也偏低 switch语句的出现解决了这一难题 并为设计多路分支程序带来了便利 switch语句提供了一个多路分支 因此可以使程序在多个选项中进行选择 尽管一系列的if语句或者if else语句嵌套可以实现多路分支 但在大多数情况下使用switch语句更为高效 并且写出的代码思路清晰 易读 2 3 1条件语句 使用switch语句的基本语法形式如下所示 switch 表达式 case常量1 语句 break case常量2 语句 break default 语句 break 2 3 1条件语句 switch语句工作时 首先把后面的表达式或者变量表达式与每个case匹配的常量进行比较 如果表达式与常量相匹配则执行该语句 如果与每个常量都没有匹配则执行default中的代码 C 中switch中每个部分必需都有break语句 因为在执行完第一个case后 再执行第二个case语句非法 并且switch语句后面括号中表达式的值只能是整型 字符型或者枚举型表达式 2 3 2循环语句 循环语句也称为迭代语句 让程序重复执行某个程序块 直到某个特定的条件表达式结果为假时 结束执行语句块 C 提供了以下几种可以让程序循环执行的语句 2 3 2循环语句 1 for循环for语句是一种在程序执行前就要首先判断条件表达式是否为真的循环语句 如果循环条件为假 那么循环语句根本就不会去执行 for循环适合用于一个语句或者语句块重复执行预定的次数 for语句通常使用在知道要循环次数的循环中 语法如下 for 初始值表达式 循环条件表达式 循环后的操作表达式 执行语句块 2 3 2循环语句 2 while循环while循环通常用于下述情况 在循环开始之前不知道重复执行一个语句或者语句块的次数 与for循环一样 while循环也是一个预测试循环 但while循环只有一个表达式 while 表达式 执行的语句块 2 3 2循环语句 3 do while循环do while循环是while循环测试的扩展 do while语句与while语句惟一的区别在于 不管表达式的结果为真还是为假 循环语句至少执行一次 因此do while循环适合于至少执行一次循环体的情况 其语法如下 do 执行的语句块 while 表达式 2 3 2循环语句 4 foreach循环foreach循环可以迭代出集合中的每一项 但并不能修改集合中的任何一项 foreach的语法如下 foreach 类型变量名in集合 执行语句 类型为集合元素的类型 变量名表示集合中的每一个元素 每次执行一次循环语句 循环变量就读取集合中的一个元素 2 3 3跳转语句 在程序开发过程中 程序需要从一个语句块转到另一个语句块 因此C 提供了许多可以立即跳转程序另一行代码执行的语句 这些跳转语句包括 goto语句 break语句和continue语句 2 3 3跳转语句 1 goto语句goto语句也称为无条件转移语句 goto语句可以使程序直接跳到程序中使用标签指定的另一行 但也有限制 如不能跳出类的范围 不能跳到像for循环那样的语句块中 也不能退出try catch块后的finally块 后面会详细的讲解如何用try catch finally块处理异常 其语法如下所示 goto语句标号2 break语句break语句使用在循环语句中或者条件语句中 用于终止一条循环语句 导致控制流程跳转到循环语句外的下一条语句 如在前面讲switch条件判断语句中已经多次使用了break语句 其作用就是执行完case语句块后 将程序的控制权交给switch后面的第一条语句 2 3 3跳转语句 3 continue语句continue语句有些类似于break语句 但是只能出现在循环体中 与break语句的区别在于 continue并不是中断循环语句 而是中止当前迭代的循环 进入下一次的迭代 简单的讲 continue是忽略循环语句的当次循环 4 return语句return用于终止所执行的方法 并将控制返回给调用方法 还可以返回一个可选值 该值可以是任何类型变量 结果集等 如果方法为void类型 则可以省略return语句 2 4C 面向对象设计 面向对象 ObjectOrientedOO 至今还没有统一的概念 也可以说是按人们认识客观世界的系统思维方式 采用基于对象 实体 的概念建立模型 模拟客观世界分析 设计和实现软件的办法 通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应 2 4 1面向对象概述 面向对象方法 ObjectOrientedMethod 是一种把面向对象的思想应用于软件开发过程中 指导开发活动的系统方法 简称OO ObjectOriented 方法 是建立在 对象 概念基础上的方法学 对象是由数据和容许的操作组成的封装体 与客观实体有直接对应关系 一个对象类定义了具有相似性质的一组对象 而继承是对具有层次关系的类的属性和操作进行共享的一种方式 所谓面向对象就是基于对象概念 以对象为中心 以类和继承为构造机制 来认识 理解 刻画客观世界和设计 构建相应的软件系统 对象 object 即指现实世界中各种各样的实体 可以指具体的事物也可以指抽象的事物 如 整数1 2 3 人 树 规则 法律 书本等等 每个对象皆有自己的内部状态和运动规律 比如狗具有体重 种类等内部状态 具有叫 跑等运动规律 在面向对象概念中把对象的内部状态称为属性 运动规律称为方法或者事件 2 4 2类 类是C 中功能最为强大的数据类型 像结构一样 类也定义了数据类型的数据和行为 然后 程序员可以创建作为此类的实例对象 与结构不同 类支持继承 而继承是面向对象编程的基础部分 C 中的类是一种数据结构 一般成员包括 数据成员 函数成员 嵌套类型等 声明语法 属性类修饰 class类名称 基类规范 中括号中的元素为可选元素类修饰符决定了类在程序运行中被处理的方式 创建类时 可以接受默认的修饰符 也可以根据需要指定一个或者多个修饰符 修饰符可以是一个访问修饰符 public protected private 加上一个或者多个类型修饰符 abstract sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 育雏后养鸡管理办法
- 苏州山塘河管理办法
- 《固体进口管理办法》
- 贷款承诺营销管理办法
- 装箱少数量管理办法
- 社区四帮一管理办法
- 财务报销审批管理办法
- 管理办法修订以适应
- 2025年紫外激光传输光纤项目发展计划
- 上海教育机构管理办法
- 小学校园欺凌专项治理委员会名单及职责
- 肺结核课件教学课件
- 食品行业质量控制管理制度
- 2025届四川省宜宾市叙州区二中生物高一第一学期期末学业水平测试试题含解析
- DB53-T 1285-2024 学校集体用餐配送服务规程
- 陆上石油天然气长输管道建设项目安全设施设计编制导则(试行)2015
- 图书馆消防安全应急预案
- 新高考背景下2025届高考地理一轮复习备考策略讲座
- 推拿学课程教案
- 教学计划(教学计划)-2024-2025学年大象版五年级科学上册
- 一年级尊师礼仪
评论
0/150
提交评论