资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第2 2章章 变量和表达式变量和表达式本章将详细介绍C+编程的实质。在本章中将创建具有 输入处理输出的传统C+程序。由于C+有两个版 本,因此我们首先介绍ANSI/ISO C+语言的特性,然后讨 论C+/CLI语言的相应方面。l C+程序结构 l 命名空间 l C+中的变量和常量 l C+中的基本数据类型 l C+中的基本输入输出 l 执行运算 l 数据类型之间的转换2.1 C+2.1 C+的基本语法的基本语法在Visual C+ 2008中,控制台应用程序将从命令 行读取数据,然后将结果输出到命令行,与Windows程 序相比,控制台程序要简单的多。为了了解C+语言的 运行,简化应用程序窗口的创建和使用,所编写的示例 都将是控制台应用程序。2.1.1 2.1.1 程序的结构程序的结构C+程序由一个或 多个函数组成。函数是 一个具有惟一名称的自 包含代码块,要执行函 数,可以使用函数的名 称对其进行调用。所有 的C+程序中都必须只 有一个名为main的函 数,main函数是程序 的入口点。典型结构如 右图。2.1.2 2.1.2 注释注释注释是程序的一个重要部分,但是它们不是可执行代码, 使用注释只是为了增强程序的可读性。在对程序进行编译时, 编译器会忽略所有注释。在开始处理比较复杂的代码时,注释 可用于给正在进行的工作添加提示。C+添加注释的方式有两种。可以在注释的开头使用“/*” ,在结尾放置标记“*/”。下面的注解是正确的:/* Exce2_01.cpp */ /* Exce2-01.cpp 一个简单的控制程程序 */2.1.3 #INCLUDE2.1.3 #INCLUDE指令指令几乎所有的C+程序都会使用到#include指令。之所以 称其为指令,因为它会命令编译器来完成某项任务。例如:#include 这里的#include指令用于控制编译器在编译之前将文件 的内容添加到这个程序中。文件通常 称为头文件。在头文件中包含了一些在使用C+ 输入和输出语句时必须使用的定义,如cout和运算符的内容包括到这个程序中,那么这个程 序就不能被编译,因为在这个程序中使用的输出语句依赖于 这个文件中的一些定义。Visual C+提供了许多不同的头文 件,它们具有各自特有的功能。2.1.4 2.1.4 命名空间命名空间为了方便在程序中执行许多常见的任务,C+在标准库中提供了大 量的例程。例如,处理输入和输出,执行基本的数学计算。由于这些例 程是非常庞大的,所以在编写自己的程序时,使用名称难免会与标准库 中定义的名称相同。为了避免此类问题,C+提供了一种称为命名空间 的机制,它可以有效地防止程序中重名问题。其方法是将一组相关的例程序组织在一起,并为这些例程定义一个共 同的名称。这样,对于这组例程中的每一个例程而言,它的名称就由两 部分组成:公共名加例程名。这组例程共享的名称就是命名空间。当程 序中出现同名的例程时,就可以通过命名空间加例程名的方式,惟一地 确定例程。这非常类似于Windows的文件夹,同名的文件不能位于同一 个文件夹中,对于不同文件夹下的同名文件,可以通过使用文件夹名和 文件名的方式惟一确认。2.2 2.2 变量和常量变量和常量变量是程序中临时存放数据的场所,它的值在程序运行过程 中是可变的。而常量在程序运行过程中其值是不能被改变的。本 节重点讲解:l 定义变量l 常量和符号常量2.2.1 2.2.1 定义变量定义变量在程序中,一个变量必须具有一个名称,给予变量的名称称 为标识符,或者更方便地称之为变量名。C+规定变量名只能由字母、数字和下划线三种字符组 成,且第一个字符必须为字母或下划线。在Visual C+ 2008中,变量名的长度可以达到2048个字符。所以在给 变量命名时,具有相当大的灵活性。如果希望在其他环境 中编译代码,那么最好把名称的长度限限制在31个字符。虽然可以使用以下划线开头的变量名,如_this和 _sum,不过最好避免使用它们,因为这可能会与标准系 统变量发生冲突。下面是一些合法的变量名:sum,SUM,averge,pShape,value_1,COUNT2.2.2 2.2.2 常量和符号常量常量和符号常量常量也会为不同的类型,如1、-5、0都属于整型常量 ,1.2、-3.14属于实型常量,a、B为字符常量。常量一般 可以从其字面形式判断,这种常量也称为字面常量或直接常 量。使用符号常量的好处有: l 意义清楚。同遍布于程序中的没有明显含义的字面 常量相比,符号常量更能表示数值的意义。如在上面的 程序中,一看PI就知道它表示圆周率。 l 如果需要修改符号常量的值,只需要在源文件中修 改它的定义,就可以确保这个变化自动出现在程序的所 有地方。2.3 2.3 基本数据类型基本数据类型变量可以保存的信息种类由其数据类型确定。 在程序中,所有的数据和变量都必须具有某种已定 义的类型。ISO/ANSI标准C+提供了一系列的基本 数据类型。在C+/CLI还定义了不属于ISO/ANSI C+的基本数据类型,本章稍后会介绍这些类型。2.3.1 2.3.1 整型整型整型仅表示整数,在C+中使用关键字int表示。 int型的变量在内存中占用4个字节,它们即可以存储 正整数,也可以存储负整数。int型变量可以存储的 值大值为231-1,即2147483647,最小值为-231,即 -2147483648。根据数值的表示范围,整型又可以分为基本整型、 短整型和长整型。int类型就是基本整型。在int之前可以 根据需要加上修饰符:short或long,分别表示短整型和 长整型。2.3.2 2.3.2 字符类型字符类型在C+中,字符类型具有双重作用。字 符类型的变量占用1个字节的内存,可以使用 这种变量存储给定范围内的整数,也可以存 储单个ASCII字符的代码。2.3.3 2.3.3 布尔类型布尔类型布尔型变量中能存放两个值:真和假。 布尔型变量的类型为bool,布尔变量也称为 逻辑变量。布尔型变量用来存储可以是真或 假的测试结果,如两个值是否相等。2.3.4 2.3.4 浮点类型浮点类型通常一个浮点数可以用科学记数法表示,例如,- 314.02。可以写成:-0.31402103。其中“-”为符号,指 数3为阶,0.31402是小数部分,提供的非0数字长度称为有 效值,这里的有效值为31402。小数部分也称为尾数。之所 以称为浮点数,是因为它的小数点可以左右“浮动”,但不 管小数点怎么移动,有效值不变,只是其小数部分会随着小 数点的移动而变化。在C+中,浮点数即可以表示为定点方式,如3.14 ,也可以表示成科学记数法(指数方式),如314e-2, 即314乘以10的负2次方。2.3.5 2.3.5 定义数据类型的别名定义数据类型的别名关键字typedef能够为现在类型定义一个别名。例 如: typedef char Char;该语句将Char定义为char的一个别名,因此可以 利用下列声明将变量ch声明为char类型:Char ch;这个声明与使用内置类型名的声明没有任何区 别。char ch;实际上,如果定义了自己的类型名,那么在同一 个程序内就可以使用它们声明相同的变量。2.3.4 2.3.4 浮点类型浮点类型通常一个浮点数可以用科学记数法表示,例如,- 314.02。可以写成:-0.31402103。其中“-”为符号,指 数3为阶,0.31402是小数部分,提供的非0数字长度称为有 效值,这里的有效值为31402。小数部分也称为尾数。之所 以称为浮点数,是因为它的小数点可以左右“浮动”,但不 管小数点怎么移动,有效值不变,只是其小数部分会随着小 数点的移动而变化。在C+中,浮点数即可以表示为定点方式,如3.14 ,也可以表示成科学记数法(指数方式),如314e-2, 即314乘以10的负2次方。2.4 2.4 输入与输出表达式输入与输出表达式C+的输出和输出是通过数据流来实现。 在数据流中,可以将数据插入输出流,或者 从输入流中提取数据。2.3.1 2.3.1 标准标准I/OI/O流流在程序运行时需要输入数据,数据处理结束后 还需要显示运行结果,这些都要用到输入/输出语 句。输入语句负责从输入设备中获取数据,输出语 句负责将数据送到输出设备。键盘和显示器是计算 机的标准输入输出设备,因此在键盘和显示器上的 输出输入为标准I/O流。标准输出输入流cin和cout是在头文件 iostream.h中定义,cin表示标准输入设备键盘, cout表示标准输出设备显示器。向显示器输出数据 时,必须将cout和插入运算符“) 小于() 大于等于() 小于等于() 不等于(!) 等于(=)2关系运算符的优先级在关系运算符中,以及=拥有相同的优先级, 并且比=和!=的优先级高。= 和!=的优先级相同。和其它大多 数运算符一样,关系运算符的结合律也是从左到右。2.4.5 2.4.5 逻辑运算逻辑运算1逻辑运算符2逻辑运算符的优先级3逻辑表达式2.4.5 2.4.5 位运算位运算按位运算符可以对操作数的二进制码进行操作, 而不是对数字值。C+提供的按位运算符包括: l 按位与(&) l 按位或() l 按位异或() l 按位取反() l 右移() l 左移()按位运算符只能处理整型数据,所以操作数的类 型必须为:short、int、long、char,以及这些类型的无 符号类型。除按位取反运算符“”是一元运算符,只 处理一个操作数,其他都是二元运算符。2.5 C+/CLI2.5 C+/CLI的应用的应用C+/CLI对ISO/ANSI C+进行了大量扩充,并且 提供了大量的附加功能。就目前介绍的内容而言, C+/CLI附加的功能包括: l 在C+/CLI中提供了对所有ISO/ANSI C+基本数据类型的支持,但是,C+/CLI中这 些基本数据类型都是其于.NET Framework类库 ,添加了一些额外的属性。 l 在控制台程序中,C+/CLI的键盘输入和 命令行输出提供了它自己的输入/输出机制。 l C+/CLI中引用safe_cast运算符,可以确 保类型强制转换的安全性。2.5.2 C+/CLI2.5.2 C+/CLI格式化输出格式化输出Console:Write()和Console:WriteLine()函数都 具有控制输出格式的功能,通过调用这两个函数, 以及使用相应的格式化字符可以格式化输出结果。 。2.5.3 C+/CLI2.5.3 C+/CLI的键盘输入的键盘输入.NET Framework控制台程序提供了3个函数实现 键盘输入功能,分别为Console:ReadLine()、 Console:Read()和Console:ReadKey()。2.5.4 SAFE_CAST2.5.4 SAFE_CAST安全类型转换安全类型转换在ISO/ANSI C+中,可以使用static_cast将 数据从一种类型转换为另一种类型。在大多数情况 下,也可以在C+/CLI程序中使用static_cast进行显 式类型强制转换,不过在C+/CLI中提供了另一种 显式类型强制转换符safe_case,safe_case可以充 分利用CLI环境中的安全检查机制,对类型转换进行 安全检查。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号