希望c语言的入门者们闲暇之余,可以浏览思考,有什么问题欢迎留言或者私信。
指针(强化版)
eg.利用指针指向指针的方法,对n个整数进行排序,要求由小到大输出,要求调用函数。(指针指向指针)
#include<stdio.h>
int main()
{
void sort(int **p,int n);
int i,n,shuzu[20],**p,*p_shuzu[20];
printf("输入要排序的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
p_shuzu[i]=&shuzu[i]; //将第i个整数的地址赋予指针数组P_shuzu的第i个元素
}
printf("输入这%d个数:",n);
for(i=0;i<n;i++)
{
scanf("%d",p_shuzu[i]);//输入要排序的数
}
p=p_shuzu;
sort(p,n);
printf("输出结果:\n");
for(i=0;i<n;i++)
{
printf("%d ",*p_shuzu[i]);//输出排序后的结果
}
printf("\n");
return 0;
}
void sort(int **p,int n)//定义排序函数
{
int i,j,*temp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(**(p+i)>**(p+j))//比较之后交换的整数地址
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
}
运行结果
有问题私聊博主或者在下面留言,如果有更好的解法也请留言,欢迎大家讨论,共同进步,一起学习。
“c语言是最美的语言,c语言让我遇见了这个世界的美好。”