逆順の配列ストレージは、ポインターなしで実装できます。前のブログで述べたように、
この共有はポインターの実装に焦点を当てています。
コード表示:
#include <stdio.h>
void fan(int *x,int n);
int main()
{
int i,arr[5],*p=arr; //定义一个数组,再定义指针变量将数组名赋值给指针变量。
printf("The original array:\n");
for(i=0;i<5;i++,p++)
scanf("%d",p);//作输入p即表示每一个数组元素的地址
printf("Output:\n");
p=arr;//再次赋值传递给子函
fan(p,5);
printf("The array has been inverted:\n");
for(p=arr;p<arr+5;p++)
printf("%d ",*p);
printf("\n");
return 0;
}
void fan(int *x,int n)
{
int temp,i;
for(i=0;i<n/2;i++)
{
temp=*(x+i);
*(x+i)=*(x+n-i-1);
*(x+n-i-1)=temp;
}
}
コード分析は、コードに1つずつ反映されます。
for(i=0;i<n/2;i++)
{
temp=*(x+i);
*(x+i)=*(x+n-i-1);
*(x+n-i-1)=temp;
}
この部分はコアアルゴリズムであり、逆の順序で格納されます。最初にこのアルゴリズムを思い付くのは簡単ではありません。私にとって、C言語のトピックのほとんどは、ルールを見つけるようなものです。アルゴリズムについて考えるのは非常に困難です。興味があれば、アルゴリズムの紹介を購入することができます。