c语言中带指针参数函数怎么申明呢 如void swap(int *a,int *b);

 我来答
tattackor
2015-10-26 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:877万
展开全部
1、和正常的函数声明方法一样。
C语言的函数定义格式是:
函数返回值类型 函数名 ( 参数列表 )
{
//函数体
}
在使用函数时,要先做声明,格式如下:
函数类型 函数名称 ( 参数列表 );
特别地,在函数声明中的参数列表中,不需给出具体的变量名称,但要给出每个变量的类型。
2、void swap( p1, p2)
int *p1,*p2;
这种写法是K&R C的声明格式,现在的编译器普遍遵循ANSI C(或者ISO C)标准,所以现在的C语言程序已经不再使用这种声明格式了,而是使用如下形式:
void swap(int *p1,int *p2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
年俊梅e7
2013-05-16 · TA获得超过227个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:285万
展开全部
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kkkwing
2013-05-16 · TA获得超过1220个赞
知道小有建树答主
回答量:267
采纳率:90%
帮助的人:255万
展开全部
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;

}

以上两种都可以,原则就是写函数体时候必须有参数的名称,声明时候只有类型没有名称可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赤链杀手
2013-05-16
知道答主
回答量:64
采纳率:0%
帮助的人:28.1万
展开全部
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
展开全部
不是太明白你的意思,就如你上面那样就可以了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式