用指针对数组逆序排列
定义了一个函数 invert(),用来实现对数组元素的逆序存放。
这个函数的形参是一个指向数组的指针,x初始值指向数组a首元素的地址。
void invert(int* x, int n) //逆序的核心代码
{
int* p, temp, * i, * j, m = (n - 1) / 2;
i = x; //数组首元素地址
j = x + n - 1;//数组末尾元素地址
p = x + m;//中间元素地址
for (i=x; i <= p; i++, j--)
{
temp = *i;
*i = *j;
*j = temp;
}
}
接下来,
int main()
{
int i, a[12]
{
1,2,3,4,5,6,7,8,9,10,11,12
};
printf("输入数组元素:");
for (i = 0; i < 12; i++)
{
printf("%d,", a[i]);
}
invert(a, 12);
printf("逆序输出:");
for (i = 0; i < 12; i++)
{
printf("%d,", a[i]);
}
_getch();
}