网站大量收购闲置独家精品文档,联系QQ:2885784924

c语言程序设计课件第06章数且组、指针与字符串.ppt

c语言程序设计课件第06章数且组、指针与字符串.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言程序设计课件第06章数且组、指针与字符串

第六章 数组、指针与字符串 本章主要内容 数组 指针 动态存储分配 深拷贝与浅拷贝 字符串 数组的概念 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型。 数组的几点说明 数组的定义形式同C语言中的数组。 数组名是常量,表示数组元素的首地址。 数组下标从零开始。 下标必须是整形表达式。 数组元素可以在定义时直接给出初始值列表。 数组元素作函数参数同简单变量作函数参数。 数组名作函数参数传递的是地址值。 二维数组在内存中按行存放。 对象数组 声明: 类名 数组名[元素个数]; 访问方法: 数组名[下标].成员名 对象数组初始化 数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象。 通过初始化列表赋值。 Point A[2]={Point(1,2),Point(3,4)}; 如果没有为数组元素指定显式初始值,数组元素便使用默认值初始化(调用默认构造函数或带默认形参值的构造函数)。 Point A[2]={Point(1,2)}; 数组元素所属类的构造函数 各元素对象的初值要求为相同的值时,可以声明具有默认形参值的构造函数。 各元素对象的初值要求为不同的值时,需要声明带形参的构造函数。 当数组中每一个对象被删除时,系统都要调用一次析构函数。 P163 例6-3 指针变量的概念 指针变量的初始化 指针变量的赋值 指针名=地址 向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可以赋值为整数0,表示空指针。 指针的类型是它所指向变量的类型,而不是指针本身数据值的类型,任何一个指针本身的数据值都是unsigned long int型。 允许声明指向 void 类型的指针。该指针可以被赋予任何类型对象的地址。但是不能通过void类型的指针间接访问所指向的变量,必须经过强制类型转换。 例6-6 void类型指针的使用 #includeiostream using namespace std; //void vobject; //错,不能声明void类型的变量 void *pv; //对,可以声明void类型的指针 int *pint; int i; void main() { couti=iendl; pv = i; //void类型指针指向整型变量 //cout*pv=*pvendl; //错,不能访问 pint = (int *)pv; cout*pint=*pintendl; } 指针变量的算术运算 指针与整数的加减运算 指针p加上或减去n,其意义是指针当前指向位置的前方或后方第n个数据的地址。 这种运算的结果值取决于指针指向的数据类型。 指针自增,自减运算 指向下一个或前一个数据。 例如:y=*px++ 相当于 y=*(px++) (*和++优先级相同,自右向左运算) 指针变量的关系运算 关系运算 指向相同类型数据的指针之间可以进行==与!=的关系运算。 指向不同数据类型的指针,以及指针与一般整数变量之间的关系运算是无意义的。 指针可以和零之间进行等于或不等于的关系运算。例如:p==0或p!=0 指向数组元素的指针 声明与赋值 例:int a[10], *pa; pa=a[0]; 或 pa=a; 通过指针引用数组元素 经过上述声明及赋值后: *pa就是a[0],*(pa+i)就是a[i]. a[i], *(pa+i), *(a+i), pa[i]都是等效的。 不能写 a++,因为a是数组首地址(是常量)。 指针数组 数组的元素是指针类型 例:Point *pa[2]; 由pa[0],pa[1]两个指针组成 例6-8 利用指针数组存放单位矩阵 #include iostream using namespace std; void main() { int line1[]={1,0,0};//声明数组,矩阵的第一行 int line2[]={0,1,0};//声明数组,矩阵的第二行 int line3[]={0,0,1};//声明数组,矩阵的第三行 int *p_line[3]; //声明整型指针数组 p_line[0]=line1; //初始化指针数组元素 p_line[1]=line2; p_line[2]=line3; //输出单位矩阵 coutMatrix test:endl; for(int i=0;i3;i++) { for(int j=0;j3;j++) cout

文档评论(0)

150****4233 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档