为了账号安全,请及时绑定邮箱和手机立即绑定

关于C语言函数形参的问题

关于C语言函数形参的问题

C
捞捞 2015-09-06 08:39:13
例如:为什么int getnum(n)也可以执行代码而不是用int getnum(int n)
查看完整描述

3 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

声明形参(parameter)时省略了类型的话,则默认类型为int,这个特性叫隐式声明。 C语言甚至连函数都有可能被隐式声明...

你这个代码中,隐式声明恰好和预期的类型一致,编译运行也就没有出现错误,不过这样的代码在编译时会有警告的。

C语言有很多奇奇怪怪的特性,一大部分是历史遗留问题。现实中绝对不要这样写!

查看完整回答
反对 回复 2015-09-06
?
Virture

TA贡献24条经验 获得超4个赞

其实int n 的n(为n1)和getnum的n(为n2)是不一样的,n1是用来接收n2的,声明接收的参数不一定要int n,int a等都行

查看完整回答
反对 回复 2015-09-06
?
onemoo

TA贡献883条经验 获得超454个赞

这是函数声明吗? 这样不行吧!?

写出详细的代码看看

查看完整回答
反对 回复 2015-09-06
  • 捞捞
    捞捞
    #include <stdio.h> int getPeachNumber(n) { int num; //定义所剩桃子数 if(n==10) { return 1; //递归结束条件 } else { num = (getPeachNumber(n+1)+1)*2; //这里是不应该用递归呢? printf("第%d天所剩桃子%d个\n", n, num); //天数,所剩桃子个数 } return num; } int main() { int num = getPeachNumber(1); printf("猴子第一天摘了:%d个桃子。\n", num); return 0; } 我是在5-8那里的代码,就是不明白为什么参数没有写类型都可以运行
  • 3 回答
  • 0 关注
  • 1607 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信