c语言中带指针参数函数怎么申明呢 如void swap(int *a,int *b);
5个回答
展开全部
1、和正常的函数声明方法一样。
C语言的函数定义格式是:
函数返回值类型 函数名 ( 参数列表 )
{
//函数体
}
在使用函数时,要先做声明,格式如下:
函数类型 函数名称 ( 参数列表 );
特别地,在函数声明中的参数列表中,不需给出具体的变量名称,但要给出每个变量的类型。
2、void swap( p1, p2)
int *p1,*p2;
这种写法是K&R C的声明格式,现在的编译器普遍遵循ANSI C(或者ISO C)标准,所以现在的C语言程序已经不再使用这种声明格式了,而是使用如下形式:
void swap(int *p1,int *p2)
C语言的函数定义格式是:
函数返回值类型 函数名 ( 参数列表 )
{
//函数体
}
在使用函数时,要先做声明,格式如下:
函数类型 函数名称 ( 参数列表 );
特别地,在函数声明中的参数列表中,不需给出具体的变量名称,但要给出每个变量的类型。
2、void swap( p1, p2)
int *p1,*p2;
这种写法是K&R C的声明格式,现在的编译器普遍遵循ANSI C(或者ISO C)标准,所以现在的C语言程序已经不再使用这种声明格式了,而是使用如下形式:
void swap(int *p1,int *p2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
void s(int *p); //定义函数
void change(int *p);
void p(int *p);
int shu[10];
s(shu);
change(shu);
p(shu);
}
void s(int *shu)
{
int i;
for(i=0;i<10;i++)
scanf("%d",&shu[i]); //输入
}
void change(int *shu)
{
int *max,*min;
int i,t1,t2;
max=min=shu;
for(i=1;i<10;i++)
{
if(*max<*(shu+i)) //交换地址,保证只是最后一个数与最大数交换而不影响其他数的排序。
max=shu+i;
}
t1=*max; *max=shu[9]; shu[9]=t1; //交换他们的值 输出。
for(i=1;i<10;i++)
{
if(*min>*(shu+i))
min=shu+i;
}
t2=*min; *min=shu[0]; shu[0]=t2;
}
void p(int *shu)
{
int i;
for(i=0;i<10;i++)
printf("%d ",shu[i]); //输出
}
追问
#include
main(){
//两种申明都可?
//void swap(int *,int *); //法1
void swap();//法2
int a,b;
scanf("%d,%d",&a,&b);
swap(&a,&b);
printf("%d,%d",a,b);
}
//交换数据
void swap(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void swap(int *a,int *b);
void main()
{
……
}
void swap(int *a,int *b)
{
a=b+2;
}
********************************************
void swap(int *,int *);
void main()
{
……
}
void swap(int *a,int *b)
{
a=b+2;
}
以上两种都可以,原则就是写函数体时候必须有参数的名称,声明时候只有类型没有名称可以。
void main()
{
……
}
void swap(int *a,int *b)
{
a=b+2;
}
********************************************
void swap(int *,int *);
void main()
{
……
}
void swap(int *a,int *b)
{
a=b+2;
}
以上两种都可以,原则就是写函数体时候必须有参数的名称,声明时候只有类型没有名称可以。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void swap(int *,int *);
追问
#include
main(){
//void swap(int *,int *);
void swap();
int a,b;
scanf("%d,%d",&a,&b);
swap(&a,&b);
printf("%d,%d",a,b);
}
//交换数据
void swap(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
两种都能编译通过????
追答
一样,都可以,申明是只要函数参数的类型就可以,至于函数参数名可有可无
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-05-16
展开全部
不是太明白你的意思,就如你上面那样就可以了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询