C语言:这道题什么意思?函数声明还可以在函数里面?
来源:百度知道 编辑:UC知道 时间:2024/05/30 00:05:42
输入三个整数,按由小到大的顺序输出..
#include<stdio.h>
main()
{void swap(int *p1,int *p2);
int n1,n2,n3;
int *p1,*p2,*p3;
printf("input three integer n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2)swap(p1,p2);
if(n1>n3)swap(p1,p3);
if(n2>n3)swap(p2,p3);
printf("Now,the order is:%d,%d,%d\n",n1,n2,n3);
}
void swap(int *p1,int *p2)
{int p;
p=*p1;*p1=*p2;*p2=p;
}
void swap(int *p1,int *p2);最开头的声明还可以写在函数里面?
#include<stdio.h>
main()
{void swap(int *p1,int *p2);
int n1,n2,n3;
int *p1,*p2,*p3;
printf("input three integer n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2)swap(p1,p2);
if(n1>n3)swap(p1,p3);
if(n2>n3)swap(p2,p3);
printf("Now,the order is:%d,%d,%d\n",n1,n2,n3);
}
void swap(int *p1,int *p2)
{int p;
p=*p1;*p1=*p2;*p2=p;
}
void swap(int *p1,int *p2);最开头的声明还可以写在函数里面?
是可以这样的 但是对模块化没什么好处
建议还是写在最前面,或者写在头文件里
void swap(int *p1,int *p2);
称为函数引用性声明,为提前引用函数做说明。即可以在函数外,也可以在函数内。
这说明 所声明的函数是后面定义的。
我经常就是这么用的呀,这样的话模块化性能应该更好呀!