| /*程序作者: 管宁 站点:www.cndev-lab.com 所有稿件均有版权,如要转载,请务必著名出处和作者*/ #include <stdio.h> void main(void) { void reversal(); static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */ int i; for (i=0;i<10;i++) { printf("%d ",a); } printf("\n"); reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */ for (i=0;i<10;i++) { printf("%d ",a); } printf("\n"); } void reversal(x,n) int x[],n; /* 定义形式参数 */ { int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x[0]故应该是int(9/2) */ int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */ for (i=0;i<=m;i++) { j=n-1-i; /* 反向计算出被调换的数组下标,例如x[0] 对应的x[n-1-i]就是x[9] */ temp=x; x=x[j]; x[j]=temp; } } /* 次题需要注意的是:这里由于a[10]和x[10]是共同享内存地址位的所以进行交换后a[10]的实际值也就发生了改变 */ |
在c/c++中利用数组名和指针进行排序的例子
来源:IT在线
作者:管宁
时间:2006-11-30
点击:
0
最新评论共有 0 位网友发表了评论
查看所有评论
发表评论

