下载此文档

1.授课类型:理论 学时分配:2学时2.讲授目的:数组指针是一种重要的 ....ppt


文档分类:高等教育 | 页数:约26页 举报非法文档有奖
1/26
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/26 下载此文档
文档列表 文档介绍
:理论学时分配:2学时 :数组指针是一种重要的数据类型,也是C语言的一个特色内容,数组指针能够方便有效地表示复杂的数据结构。本讲介绍数组的指针和数组的指针变量。 :数组的指针和数组的指针变量。 :(1)数组指针的概念;(2)数组的指针和数组的指针变量引用的方法。
基本要求
任务13 按“地址”找数据
指针程序设计
第一步:提出任务
编程:已知一数组a[10]={3,6,12,15,18,20,21,24,26,28},输出数组中的全部元素。
要求:采用数组指针变量实现数组各元素输出。
分析程序啦!
第二步:收集资料
[10]={3,6,12,15,18,20,21,24,26,28}; 主要是采用输出数组的方式。
(1)程序1是采用“下标法”直接输出数组各元素的值。
main( )
{int a[10]={3,6,12,15,18,20,21,24,26,28};
int i;
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
你会怎
样考虑?
接上页
(2)程序2是采用“地址法”找出要输出数组各元素的值。
main( )
{int a[10]={3,6,12,15,18,20,21,24,26,28};
int i;
for(i=0;i<10;i++)
printf("%d ",*(a+i));
printf("\n");
}
接上页
(3)程序3是采用“指针法”指向要输出数组各元素的地址。
main( )
{int a[10]={3,6,12,15,18,20,21,24,26,28};
int *p,i;
for(p=a;p<(a+10);p++)
printf("%d ",*p);
printf("\n");
}
接上页
:
(1)第(1)和(2)种方法执行效率是相同的。C编译系统是将a[i]转换为*(a+i)处理的。即先计算元素地址。因此用第(1)和(2)种方法找数组元素费时较多。
(2) 第(3)种方法比(1)(2)法快,用指针变量直接指向元素,不必每次都重新计算地址,像p++这样的自加操作是比较快的。这种有规律地改变地址值(p++)能大大提高执行效率。
接上页
(3) 用下标法比较直观,能直接知道是第几个元素。用地址法或指针变量的方法不直观,难以很快地判断出当前处理的是哪一个元素。要仔细分析指针变量p的当前指向,才能判断当前输出的是第几个元素。
第三步:问题解剖
:分别是“下标法”、“地址法”和“指针法”。
程序1是通过数组的下标,直接输出各元素的值。
程序2是通过数组名计算数组元素地址,找出元素的值。
程序3是通过数组名地址赋予指针变量,指针指向要输出数组各元素的地址。
看清楚哦!

(1) 编写程序
#include “”
main( )
{int a[10]={3,6,12,15,18,20,21,24,26,28};
int *p,i;
for(p=a;p<(a+10);p++)
printf("%d ",*p);
printf("\n");
}
接上页
(2) 运行结果
以上3个程序的运行情况均如下:
3 6 12 15 18 20 21 24 26 28
接上页

1.授课类型:理论 学时分配:2学时2.讲授目的:数组指针是一种重要的 ... 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数26
  • 收藏数0 收藏
  • 顶次数0
  • 上传人bdjigr52
  • 文件大小452 KB
  • 时间2018-06-06