十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
可以重名,不过函数的参数类型或数量要不一致,例子如下:
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比海门网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海门网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海门地区。费用合理售后完善,10余年实体公司更值得信赖。
//递归求阶乘
int calc(int num){
if(num==0){
return 0;
}else{
return num*calc(num-1);
}
}
//递归求任意一个整数的整数次方
int calc(int num,int count){
if(num==0){
return 0;
}else if(count == 0){
return 1;
}else{
return num*calc(num,count-1);
}
}
这两个函数方法名称完全一样,但是参数不一样,这种做法有一个叫法,叫函数的重载
答案是:否
c语言中,变量和函数名称不允许相同,比如你定义一个函数int a();那么你的main函数中,如果int a=a();则会报错,这是c语言中非常讨厌的一点,当然,反对者可能会说:“容易引起名称混淆,导致不容易维护”,这是很牵强的说法,用现在流行的词汇叫做:强行为c语言的缺点洗白,c语言的这个限制,极大程度的增加了初学者,尤其是自学者的学习难度,因为初学者不会考虑变量的含义,通常定义aa,bb,cc这样更利于快速学习,但是出来这个限制,并且不知情的情况下,甚至都不知道在网上如何搜索来解决这个小问题,所以个人觉得这是c的不友好之一
C语言在同一个源程序文件中,两个函数肚饿名字不可以相同
C++允许相同,这个叫重载,但是相同名字的函数的参数的个数或者类型必须不同。