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

第28次(指向多维数组的指针)(新增章节).ppt

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

授课要点 指向二维数组的指针变量 指针数组 指向指针的指针 函数型指针 复习:数组和指针的关系 二维数组与一维数组的数组名的区别 用二维数组名访问二维数组的元素 指向二维数组的指针变量的定义与赋值 指向二维数组元素的指针变量的使用 例3 预订旅店房间 例3 预订旅店房间 例3 预订旅店房间 例3 预订旅店房间 例3 预订旅店房间 授课要点 指向二维数组的指针变量 指针数组 指向指针的指针 函数型指针 指针数组的定义与赋值 指针数组的使用 指针数组的优劣 指针数组的优劣主要体现在处理字符串数组上。 优势: 当使用二维字符数组储存字符串时,会造成一定的空间浪费,如: char strs[4][8]={Alen,Bob,Charles,David}; 在内存中的空间分配如下: 指针数组的优劣 换作指针数组的话,指针数组中的每一个指针可以不同长度的一维数组: char *ps[4]={Alen,Bob,Charles,David}; 在内存中的空间分配如下: 指针数组的优劣 劣势: 赋值后不能修改字符串的内容。而二维字符数组则可通过修改其元素的值来修改字符串: char strs[4][8]={Alen,Bob,Charles,David}; strs[1][2]=‘t’;/*可以实现*/ char *ps[4]={“Alen”,“Bob”,“Charles”,“David”}; *(*(ps+1)+2)=‘t’;/*运行报错*/ 授课要点 指向二维数组的指针变量 指针数组 指向指针的指针 函数型指针 指针的两种指向 单级间址 指针指向数组或数组元素时,通过指针可以直接指向变量,则称这种指向为“单级间址”。 多级间址: 指针指向另一个指针时,通过指针不能直接指向变量,则称这种指向为“多级间址”。 指向指针的指针变量的定义 指向指针的指针变量的赋值 指向指针的指针变量的使用 授课要点 指向二维数组的指针变量 指针数组 指向指针的指针 函数型指针 函数型指针的概念 函数型指针的定义和赋值 函数型指针的使用 函数型指针的使用 函数型指针的使用 小组讨论并总结 1、二维数组名与一维数组名有何区别? 2、指向二维数组的指针变量如何定义与赋值?定义中要指定二维数组的哪个参数? 3、指针数组如何定义与赋值?定义中要指定二维数组的哪个参数? 4、指向指针的指针变量如何定义与赋值? 5、指向二维数组的指针变量、指针数组、指向指针的指针变量有何区别? 结论2——指向二维数组的指针变量的定义与赋值 定义形式: 类型说明符 (*指针名)[二维数组列数]; 例如: int (*p)[4]; 定义了一个指向列数为4的二维数组的指针p。 赋值方法(以指向二维数组a[3][4]为例): p=a;或p=a[0];或*p=a[0]; 结论3——指针数组的定义与赋值 定义形式: 类型说明符 *指针名[二维数组行数]; 例如: int *p[3]; 定义了一个指向列数为4的二维数组的指针p。 赋值方法(以指向二维数组a[3][4]为例): 初始化赋值:int *ps[3]={a[0],a[1],a[2]}; 定义后赋值:ps[0]=a[0];ps[1]=a[1];ps[2]=a[2]; 或ps=a[0];ps+1=a[1];ps+2=a[2]; 结论4——指向指针的指针变量的定义与赋值 定义形式: 类型说明符 **指针名; 例如: int **pp; 定义了一个指向整型指针的指针pp。 赋值方法(通过指针数组来进行赋值(以int a[3][4]为例) int *ps[3]={a[0],a[1],a[2]}; int **pp=ps; 结论5——以上三种与指针有关的数据类型的区别 概念不同: 指向二维数组的指针变量: 本质是指针、指向是单级间址 指针数组: 本质是数组、数组中的指针元素的指向是单级间址 指向指针的指针变量: 本质是指针、指向是多级间址 结论5——以上三种与指针有关的数据类型的区别 定义不同: 指向二维数组的指针变量: 类型说明符 (*指针变量名)[二维数组列数] 指针数组: 类型说明符 *指针变量名[二维数组行数] 指向指针的指针变量: 类型说明符 **指针变量名 结论5——以上三种与指针有关的数据类型的区别 赋值方法不同: int a[3][4]; int (*p)[4]=a;/*指向二维数组的指针*/ int ps[3]={a[0],a[1],a[2]};/*指针数组*/ int **pp=ps;/*指向指针的指针变量*/ 结论5——以上三种与指针有关的数据类型的区别 地址变化值不同: *(*(p+i)+j);p先移动i个一维数组的长度

文档评论(0)

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

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

1亿VIP精品文档

相关文档