第6章 (c语言) 指针

第6章 (c语言) 指针

ID:10833277

大小:204.05 KB

页数:37页

时间:2018-07-08

第6章  (c语言)  指针_第1页
第6章  (c语言)  指针_第2页
第6章  (c语言)  指针_第3页
第6章  (c语言)  指针_第4页
第6章  (c语言)  指针_第5页
资源描述:

《第6章 (c语言) 指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、6.4.4指针与字符数组6.5指针的地址分配6.6指针数组[例6-13]上述程序也可采用指针变量作子程序的形式参数。#includemain(){  intsub_max();  intn,a[10],*ptr=a;  intmax;  for(n=0;n<=9;n++)  scanf("%d",&a[n]);  max=sub_max(ptr,10);  printf("max=%d",max);}intsub_max(b,i)/*形式参数为指针变量*/int*b,i;{ 

2、 inttemp,j;  temp=b[0];/*数组元素指针的下标法表示*/  for(j=1;j<=i-1;j++)  if(temp

3、例6-14]上述程序的子程序中,数组元素还可以用指针表示。#includemain(){  intsub_max();  intn,a[10],*ptr=a;  intmax;  for(n=0;n<=9;n++)  scanf("%d",&a[n]);  max=sub_max(ptr,10);  printf("max=%d",max);}intsub_max(b,i)/*子程序定义*/int*b,i;{  inttemp,j;  temp=*b++;  for(j=1;

4、j<=i-1;j++)  if(temp<*b)temp=*b++;  returntemp;}   在程序中,赋值语句temp=*b++;可以分解为:temp=*b;b++;两句,先作temp=*b;后作b++;程序的运行结果与上述完全相同。  对上面的程序作修改,在子程序中不仅找最大元素,同时还要将元素的下标记录下来。#includemain(){  int*max();/*函数声明*/  intn,a[10],*s,i;  for(i=0;i<10;i++)/*输入数据*/

5、  scanf("%d",a+i);  s=max(a,10);/*函数调用*/  printf("max=%d,index=%d",*s,s-a);}int*max(a,n)/*定义返回指针的函数*/  int*a,n;{  int*p,*t;/*p用于跟踪数组,t用于记录最大值元素的地址*/  for(p=a,t=a;p-a*t)t=p;  returnt;}  在max()函数中,用p-a

6、好是所跟踪元素相对数组头的距离,或者说是所跟踪元素相对数组头的元素个数,所以在main()中,最大元素的下标就是该元素的地址与数组头的差,即s-a。运行程序:1357924680max=9,index=4[例6-15]用指向数组的指针变量实现一维数组的由小到大的冒泡排序。编写三个函数用于输入数据、数据排序、数据输出。  在第5章的例题中,我们介绍过选择法排序及算法,此例再介绍冒泡排序算法。为了将一组n个无序的数整理成由小到大的顺序,将其放入一维数组a[0]、a[1]...a[n-1]。冒泡算法如下

7、:  (开序)①相邻的数组元素依次进行两两比较,即a[0]与a[1]比、a[1]与a[2]比...a[n-2]与a[n-1]比,通过交换保证数组的相邻两个元素前者小,后者大。此次完全的两两比较,能免实现a[n-1]成为数组中最大。②余下n-1个元素,按照上述原则进行完全两两比较,使a[n-2]成为余下n-1个元素中最大。③进行共计n-1趟完全的两两比较,使全部数据整理有序。  下面给出一趟排序的处理过程:原始数据3825第一次相邻元素比:3825第二次相邻元素比:3285第三次相邻元素比:3258

8、  4个元素进行3次两两比较,得到一个最大元素。若相邻元素表示为a[j]和a[j+1],用指针变量P指向数组,则相邻元素表示为*(P+j)和*(P+j+1)程序实现如下:#include#defineN10main(){  voidinput();/*函数声明*/  voidsort();  voidoutput();  inta[N],*p;/*定义一维数组和指针变量*/  input(a,N);/*数据输入函数调用,实参a是数组名*/  p=a;/*指针变量指

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。