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;
}
编译就无法通过?
新手小白求解答,谢谢!
c语言的自定义函数里面的指针声明该怎么做?
答案:5 悬赏:70 手机版
解决时间 2021-04-07 01:49
- 提问者网友:兔牙战士
- 2021-04-06 16:39
最佳答案
- 五星知识达人网友:雪起风沙痕
- 2021-04-06 17:51
void swap( p1, p2)
int *p1,*p2;
这种写2113法是K&R C的声明格式5261,现在的编译4102器普遍遵循ANSI C(或者ISO C)标准,所以现1653在的C语言内程序已经不再使用容这种声明格式了,而是使用如下形式:
void swap(int *p1,int *p2)
int *p1,*p2;
这种写2113法是K&R C的声明格式5261,现在的编译4102器普遍遵循ANSI C(或者ISO C)标准,所以现1653在的C语言内程序已经不再使用容这种声明格式了,而是使用如下形式:
void swap(int *p1,int *p2)
全部回答
- 1楼网友:执傲
- 2021-04-06 21:54
这种写法已经不推荐使用了,大部分编译器都不识别了。推荐使用:void swap( int *p1,int *p2)
- 2楼网友:一秋
- 2021-04-06 20:21
放在花括号外面的是全局变量,不过你这写的好奇葩。。。居然放在大括号上面,函数名下面。。。我佩服了。。。
还有,参数列表最好把数据类型也写上,如:void swap(int *p1, int *p2){.....}。
如果你连那些基础都还没有掌握,就先把基础的东西学好了再学这些东西吧。
- 3楼网友:春色三分
- 2021-04-06 19:41
这个函数接受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.
- 4楼网友:舊物识亽
- 2021-04-06 19:26
第一种是早期的写法,现在很少用了。第二种写法有错误,形参应该在函数头部的括号里面声明,而不是在函数体中:
void swap(int *p1,int *p2)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯