利用数组名作为函数参数传递排序和用指针进行排序
2006-05-22 18:26
756 查看
#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]的实际值也就发生了改变 */
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语言中,数组名作为参数传递给函数时,退化为指针
- C++指针作为函数的参数进行传递时注意的问题
- 利用“指针”对主调函数中数组进行排序,(菜鸟知道模块化)
- C语言中数组名作为参数进行函数传递
- 数组作为函数参数进行传递
- 数组作为函数参数进行传递
- (转载) C语言技巧:怎样把数组作为参数传递给函数?(值传递和指针传递)
- C语言中,数组名作为参数传递给函数时,退化为指针
- C语言中,数组名作为参数传递给函数时,退化为指针
- C++指针作为函数的参数进行传递时需要注意的一些问题
- C语言中,数组名作为参数传递给函数时,退化为指针
- 数组作为函数参数传递时退化为指针(腾讯)
- 一维数组和二位数组作为函数参数进行传递的方式
- 数组作为函数参数的传递
- 类的成员函数指针作为参数传递给其他函数和普通函数指针的传递是不同的
- c++中关于数组作为函数参数并传递数组元素个数的几种有效方法的讨论
- 指针作为函数参数传递
- 函数指针作为参数传递给函数