第4章 数组和指针.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++程序设计 第4章 数组和指针 第4章 数组和指针 4.1 数组和指针的概念 4.2 托管数组 4.3 托管数组类 4.4 多维托管数组 4.5 集合 4.6 数组与集合综合应用实例 4.1 数组和指针的概念 4.1.1 数组的概念 4.1.2 指针的概念 4.1.1 数组的概念 使用数组的必要性 数组的定义 数组的维数 C/C++中数组的声明 使用数组的必要性 一个程序处理所的数据往往来自同类型的一个集合(例如一个班的学生)。集合中的数据有时无需同时保存在内存中(例如对成绩求和时,一个学生数据中的mark值加入变量sum后,便可被下一个学生的数据所覆盖)。但多数情况下并非如此,例如线性代数中的向量和矩阵运算、数据处理中的排序、检索等,都需将一组同类型的数据以一个名字同时保存在内存中并通过下标进行检索,这时就需要用到数组。 数组的定义 数组是同类型变量的有序集合,用唯一的标识符 —— 数组名表示集合中的所有元素;用数组名加下标表示集合中的每个元素。一个数组一旦被创建,它的n个元素就作为n个相关的变量,被同时映射到内存空间。 假设一个名为A的n个元素的一维double型数组,其数组元素为: A[0], A[1], …, A[n-1] 则该数组可以用来表示向量 (a0, a1, …, an-1) 数组的维数 线性空间维数的概念也可延伸到数组。设有一维向量 x = {xi}, i = 0, 1, …, n-1 则x可用一维数组X表示为 X[0], X[1], …, X[n-1] 设有二维矩阵 a = {aij}, i = 0, 1, …, m-1; j = 0, 1, …, n-1 则a可用二维数组A表示为 A[0][0], A[0][1], …, A[0][n-1], A[1][0], A[1][1], …, A[1][n-1], …, A[m-1][0], A[m-1][1], …, A[m-1][n-1] C/C++中数组的声明 C和标准C++的数组声明和创建方法是一样的,一维数组可通过以下语法进行声明: 类型 数组名[常量表达式] 例如: int x[10]; // 声明了一个10个元素的整型数组 二维数组可通过以下语法进行声明: 类型 数组名[常量表达式0][常量表达式1]; 例如: double A[10][10]; // 声明了一个10×10个元素的 双精度浮点型数组 4.1.2 指针的概念 什么是指针 内存的地址 指针声明和赋值 指针的运算 指针名代替数组名 什么是指针 指针(pointer)是C/C++区别于其它高级语言的特色之一,也是它们被称为“中级语言” (介于高级语言和机器语言之间的语言),可用来编写操作系统的原因。 指针就是用于存放内存地址的变量,C/C++ 允许用和new操作符获得内存的物理地址,从而按该地址对内存中的数据进行改写。这虽然方便了底层操作,但也带来安全性上的隐患,因此,指针在C++/CLI中受到了禁止。 内存的地址 在序言中阐述了数据对象的四个特征,即类型、名字、地址和值。除地址以外,都可以在数据对象的声明中得到体现。例如: int x = 3; // int是类型,x是名字,3是值 变量x是按地址映射到内存空间的,那么它的地址是什么?C和标准C++允许在x之前加操作符来获得x的地址,即 x // 该表达式的值为已有变量x的地址 也允许通过new操作符创建动态内存单元: new int // 表达式的值为系统分配的内存单元的地址 指针声明和赋值 在 C/C++ 中声明一个指针,是在该指针拟存放其地址的变量的类型之后加*,再跟一个指针变量名,例如: int* p; // 声明一个指向int型变量的指针 可以用通过 或new获得的内存的地址来为指针变量赋值,例如: p = x; /*或*/ p = new int(3); // 3为内存单元的值 并通过在指针之前加运算符 *,通过指针间接地访问它所“指向”的内存,例如: printf(x = %d, *p); // 输出3 指针的运算 C/C++允许对指针做加减一个常量、增量和比较运算,从而可以将其作为一个“游标”来访问数组的各个元素。例如: int x[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int* p = x; // 让p指向数组x的第一个元素 for (int i = 0; i 10; i ++) { printf(%d , *p); p ++; } // 打印出数组x各个元素的值1~10 指针名代替数组名 当指针指向数组的第一个元素时,也可以用指针名代替数组名在其后加下标来访问数组元素,例如上页的例子也可以改写为 int x[10] = {

文档评论(0)

zilaiye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档