淘豆网
下载此文档放大查看缩小查看   1/43
下载文档 文档分类:IT计算机 > C/C++资料

c++课件 第四章 数组.ppt

下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
0/100
您的浏览器不支持进度条


播放器加载中,请稍候...
更多>>该用户其他文档
下载所得到的文件列表
c++课件 第四章 数组.ppt
文档介绍:
C++ 编程思想大连理工大学孙林林第四章数组–复习 4.1 数组结构及定义 4.2 数组的赋值 4.3 将数组传递给函数 4.4 数组排序与查找 4.5 多维数组 C++ 编程思想大连理工大学孙林林 4.1 数组数据结构 4.1.1 、数组简介数组数据结构由相同类型的相关数据项组成。不同与 structure and class---( 不同类型). 数组是具有相同名称和相同类型的一组连续内存地址。数组的类型就是这组元素的数据类型。构成数组的这组元素在内存中占用一组连续的存储单元。可以用一个统一的数组名标识这一组数据,而用下标来指明数组中各元素的序号。根据数组的维数,分为一维数组、二维数组和多维数组,常用的是一维和二维数组。 C++ 编程思想大连理工大学孙林林 4.1.2 、一维数组(1) 、一维数组的定义类型数组名[常量表达式]; 其中,类型:各元素的数据类型。数组名:一个标识符, 代表着数组元素在内存中的起始地址, 命名规则与变量名一样。常量表达式:一维数组中元素的个数,即数组长度,用“[ ]”括起来。方括号“[ ]”的个数:数组的维数,一个方括号表示一维数组。---见 P161 —图 4.2-- (优先级、结合律) ---如: int c[12] ; // int型---第一个元素 c[0] ---c[11] ---对上面定义的数组 c,也可以采用下面定义方法: const int size=12; int c[size ]; C++ 编程思想大连理工大学孙林林 const —基础 C++ 除可用 C中习惯使用的#define 来定义常量外,还可使用 const 修饰符将一个标识符定以为常量,使该标识符的值在程序运行过程中不能以任何形式对其进行修改。例如: const int i=10; 这时,标识符 i被 const 声明为常量,它有类型,有地址,可用指针指向它,但不能修改它。 C++ 编程思想大连理工大学孙林林 const 与指针使用的三种情况⑴、修饰指针所指向的变量, 将该变量定义为常量。此时,指针变量的值可以改变,而指针所指向的变量的值不能改变。例如: const char * str =&c; 声明了一个指针变量 str,它指向变量 c,但由于用 const 进行了修饰,所以,变量 c变成了常量,其值不允许修改。而指针变量 str的值可以修改。⑵、将指针本身修饰为常指针,指针所指向的变量不受 const 修饰的影响,仍为变量。此时,指针变量的值不能改变,称为常指针, 而指针所指向的变量的值可以改变。例如: char * const str =&c; 声明了一个指针变量 str,它指向变量 c,但由于指针变量 str 用 const 进行了修饰,所以,变成了常量,其值不允许修改,而变量c的值可以修改。 C++ 编程思想大连理工大学孙林林⑶、将指针本身修饰为常指针,指针所指向的变量修饰为常量。此时,指针变量的值不能改变,被指针所指向的变量的值也不能改变。例如: const char * const str =&c; 声明的指针变量 str和指针所指向的变量 c都被定义成常量, 它们的值都不允许改变。几点说明: (a) 、如果用 const 定义的是整型常量,则关键字 int可以省略。(b) 、常量一旦被建立,在程序的任何地方都不能被修改。(c) 、与#define 定义的常量不同, const 定义的常量可以有自己的数据类型,从而使 C++ 的编译器可进行更加严格的类型检查,具有良好的编译检测性。(d) 、 const 的作用与#define 相似,但使用#define 可能会带来程序的不安全性,如下面的程序: C++ 编程思想大连理工大学孙林林例1、使用#define 可能会带来程序的不安全性#include< iostream.h > #define T1 a+a #define T2 T1-T1 int main() { int a=1; cout << ” T2 is: ”<<T2<< endl ; return 0; } 初看程序,输出的结果是: T2 is: 0 实际的输出结果是: T2 is: 2 究其原因,是编译系统将语句: cout << ” T2 is: ”<<T2<< endl ;解释为: cout << ” T2 is: ”<< a+a-a+a << endl ;如果用 const 取代上例中的两个#define 语句,将不会引起这个错误。请看下例。 C++ 编程思想大连理工大学孙林林#include< iostream.h > int main() { int a=1; const T1= a+a ; const T2=T1-T1; cout << ” T2 is: ”<<T2<< endl ; return 0; }大家试一下! 例2 、使用 const 会消除#define 不安全性 C++ 编程思想大连理工大学孙林林(e) 、函数参数可用 const 说明为常量,以保证实参在函数内部不被修改。(f)、 ANSI C 标准也采用了 const ,但两者是有区别的,如下面的程序段在 C++ 中是合法的,而在 ANSI C 中是不合法的: const int size=10; int ch[size ];另外,在 ANSI C 中 const 定义的常量是全局常量,而 C++ 中 const 定义的常量要根据定义的位置来决定是局部的还是全局的。------const 的应用很广泛---后面我们要讲到 const 对象、 const 成员函数等。 C++ 编程思想大连理工大学孙林林(2) 、注意: 1、在定义数组时,不能用变量定义元素个数。如,下面是不合法的: int c[n ];2、下标指明了数组中每个元素的序号,下标值为整数,用数组名加下标值就可以访问数组中对应的某个元素。 3、下标值从 0开始,故一个有 n个元素的一维数组,其下标值是 0~ n-1 。如,对上例中定义的 c, c[0] 是第一个元素, c[1] 是第二个元素, …, c[11] 是最后一个元素,但不含 c[12] 。数组越界
1
内容来自淘豆网www.taodocs.com转载请标明出处.