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

c中主函数后到底有没有参数

c中主函数后到底有没有参数

C
影月优雅 2017-09-25 19:31:45
我们课本上说main后括号内要加void,但是也可以不写,我同学跟我说,这个说法在国外是没有的,中国解释的是错的
查看完整描述

3 回答

已采纳
?
onemoo

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

你课本中写的是对的!

C 标准规定,函数如果不需要参数,参数列表中应该写上 void。 参数列表留空并不表示函数无参数,而是表示函数的参数个数未指定,并且编译器不会对调用参数进行类型检查,这是有隐患的!

事实上参数留空这种写法只应存在于 C89 之前的很老的 C 代码中。  虽然这么写不算不合语法,但其是不符合程序员意图且易出错的写法,应该避免。


至于 main 函数,C 标准规定 main 函数原型应该是以下形式:

  • 不需要使用参数时  int main (void)

  • 需要使用参数时  int main (int argc, char *argv[]) 或 int main (int argc, char **argv)   *这两种写法是等价的*

其实就是说不需要参数时,main函数的参数列表里也要写 void。


吐槽:不知道你的同学是从哪里道听途说的...

其实让我很惊讶的是,你的课本中对此的描述非常正确,这很赞!  事实上我见过太多的国内教材都写得一塌糊涂...

也许这说明你校的教学水平不错,要好好学啊!

查看完整回答
1 反对 回复 2017-09-26
?
NJP

TA贡献32条经验 获得超39个赞

主函数一般是没有参数的,但是你要了解其实主函数是可以有参数的,如这种:
int main(int argc,char* argv[]){}
但是不常用你不必太过纠结这件事,因为主函数是系统调用的,你只要清楚主函数是一个程序的入口函数就可以了

查看完整回答
反对 回复 2017-09-26
?
王富贵_Program

TA贡献7条经验 获得超13个赞

你同学说的很对

学校就没有教过main里面写Void

查看完整回答
反对 回复 2017-09-25
  • 3 回答
  • 1 关注
  • 1644 浏览

添加回答

举报

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