c语言的自定义函数里面的指针声明该怎么做?

voidswap(p1,p2)int*p1,*p2;//为什么这里的声明必须放在花括号的外面??{intx;x=*p1;*p1=*p2;*p2=x;}如果int*p1,*... void swap( p1, p2)
int *p1,*p2; //为什么这里的声明必须放在花括号的外面??
{
int x;
x = *p1;
*p1 = *p2;
*p2 = x;
}
如果int *p1,*p2;放到花括号里面,就是:
void swap( p1, p2)
{
int *p1,*p2;
int x;
x = *p1;
*p1 = *p2;
*p2 = x;
}
编译就无法通过?
新手小白求解答,谢谢!
展开
 我来答
綦瑶所风
2019-05-04 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:31%
帮助的人:847万
展开全部
这个函数接受2个整形,m和n,
函数内容是一个循环,进行n次,每次将p(初始值1)赋值为p*m,最后返回p的值。
比如x=p(2,3).
就是m=2,n=3.
运行3次循环,第一次,p=p*m=1*2=2,
第二次,p=p*m=2*2=4,
第三次,p=p*m=4*2=8.
最后返回8,x=8.
HoLee1997
2015-01-27 · TA获得超过1961个赞
知道大有可为答主
回答量:2557
采纳率:84%
帮助的人:950万
展开全部
放在花括号外面的是全局变量,不过你这写的好奇葩。。。居然放在大括号上面,函数名下面。。。我佩服了。。。
还有,参数列表最好把数据类型也写上,如:void swap(int *p1, int *p2){.....}。
如果你连那些基础都还没有掌握,就先把基础的东西学好了再学这些东西吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-27
展开全部
void swap( p1, p2)
int *p1,*p2;

这种写法是K&R C的声明格式,现在的编译器普遍遵循ANSI C(或者ISO C)标准,所以现在的C语言程序已经不再使用这种声明格式了,而是使用如下形式:

void swap(int *p1,int *p2)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ebe1e4f3
2015-01-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:9245
采纳率:52%
帮助的人:3241万
展开全部
第一种是早期的写法,现在很少用了。第二种写法有错误,形参应该在函数头部的括号里面声明,而不是在函数体中:
void swap(int *p1,int *p2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanaiavu_0
2015-01-27 · TA获得超过718个赞
知道小有建树答主
回答量:682
采纳率:81%
帮助的人:217万
展开全部
这种写法已经不推荐使用了,大部分编译器都不识别了。推荐使用:void swap( int *p1,int *p2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式