C++中函数名和变量名相同不行吗?

#include<iostream>usingnamespacestd;intchoice(intchoice){returnchoice;}intmain(){intc... #include <iostream>
using namespace std ;

int choice (int choice)
{
return choice ;
}
int main ( )
{
int choice = 1 ;
choice (choice) ;
}
Visual Studio 2010报错,将choice改为Choi,就正常运行了,这是为什么?C++不允许函数名和变量名相同吗?
展开
 我来答
dongyue2008
2010-12-31 · TA获得超过3602个赞
知道大有可为答主
回答量:1300
采纳率:100%
帮助的人:594万
展开全部
C++编程时最好不要将变量名与函数同名,否则经常出现一些二义性错误。比如在主函数中的choice,编译器将它理解为是函数名而不是变量名,这样一来在参数中填入一个函数名,就和chocie的声明不一致了,所以就出错了。
484117
2010-12-31 · TA获得超过1220个赞
知道小有建树答主
回答量:1553
采纳率:100%
帮助的人:1062万
展开全部
对 很明显的二义性 程序不知道该调用哪个
所以得改 纠正自己的变成写法 比如函数名第一个字母小写 其后每个单词首字母大写 如adfQuality 而变量名可采用全大写 ADCQUALITY之类的
这样可以完全区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nqildp
2011-01-01 · TA获得超过1419个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:964万
展开全部
可以一样的,没有要求,最好用的时候不要一样了。影响程序的可读性。不利于以后的修改查错。自己都难分清了,要让别人读你的程序,也就更不好理解了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友74af02d0f
2011-01-01
知道答主
回答量:15
采纳率:0%
帮助的人:14万
展开全部
不允许在相同的存储区有相同的标识符。如动态存储区和静态存储区可以存在相同的标识符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哎呀……18a91a6
2015-10-17 · TA获得超过4.2万个赞
知道大有可为答主
回答量:7246
采纳率:76%
帮助的人:3017万
展开全部
C++的语法规定:
1、变量、函数、结构、类 ……等等,在相同的一个作用域中,只能有一个唯一的名称。
2、全局变量与局部变量可重名,同名情况下优先认可局部变量而不认可全局变量。
3、特别提示,这些规定在不同的编程器、编程环境下不尽相同,有的编程环境下,类与函数重名并不报错。日常编程时,要自已注意规避容易误解的重名。一般重名变量的定义只用在一些非关键性的变量上,比如循环计数器之类的,并且使用前都会置零。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式