[计算机软件及应用]C语言指针进阶.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]C语言指针进阶

Visual C++程序设计 第11章 指针进阶 本章要点 指针数组和指向指针的指针是如何被定义和使用的? 指针如何作为函数的返回值? 指向函数的指针的意义是什么? 什么是结构的递归定义,哪种应用需要这种定义方法? 对链表这种数据结构,如何进行动态内存分配操作? 如何建立单向链表并实现插入、删除以及查找操作? 11.1 布袋中的彩色球 例1 已知一个不透明的布袋里装有红、蓝、黄、绿、紫同样大小的圆球各一个,现从中一次抓出两个,问可能抓到的是什么颜色的球? 程序解析 #includestdio.h int main(void) { char *color[5] = {red, blue, yellow, green, purple}; /* 初始化 */ int count = 0, i, j; for(i = 0; i = 4; i++) for(j = 0; j = 4; j++) {if(i == j) continue; count ++; printf(%6d, count); printf(%10s %10s\n, color[i], color[j]); } return 0; } 2. 指针数组的概念 char *color[5]; 类型名 *数组名[数组长度] int a[10]; a是一个数组,它有10个元素 每个元素的类型都是整型 char *color[5]; color是一个数组,它有5个元素 每个元素的类型都是字符指针 char *color[5] = {red, blue, yellow, green, purple}; color是一个数组,它有5个元素 每个元素的类型都是字符指针 数组元素可以处理字符串 对指针数组元素的操作相当于对同类型指针变量的操作 printf(%10s %10s\n, color[i], color[j]); 例2 使用指针数组输出5种颜色的英文名称 #include stdio.h int main(void) { int i; char *color[5] = {red, blue, yellow, green, purple}, *tmp; /* 输出字符串的地址和内容*/(思考) for(i = 0; i 5; i++) printf(%x, %s\n, color[i], color[i]); return 0; } 交换color[0]与color[4]的值 3.指向指针的指针 (1)定义 指向指针的指针(二级指针) 类型名 **变量名 int a = 10; int *p = a; int **pp = p; 例11-4 int a = 10, b = 20, t; int *pa = a, *pb = b, *pt; int **ppa = pa, **ppb = pb, **ppt; 例3 改写例1,用指向指针的指针实现。 #includestdio.h int main(void) { char *color[5] = {red, blue, yellow, green, purple}; char **pc = color; int count = 0, i, j; for(i = 0; i = 4; i++) for(j = 0; j = 4; j++) { if(i == j) continue; count++; printf( %6d, count ); printf( %10s %10s\n, color[i], color[j] ); } return 0; } 4. 用指针数组处理多个字符串 处理多个字符串 二维字符数组 char ccolor[ ][7] = {red, blue, yellow, green, purple}; 指针数组 char *pcolor[ ] = {red, blue, yellow, green, purple}; 1. 用指针数组处理多个字符串-排序 例11-5 将5个字符串从小到大排序后输出。 例11-5 字符串排序 void fsort(int a[ ], int n) { int k, j; int temp; for(k = 1; k n; k++)

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档