变量名能和函数名相同吗?
c/c++变量名能和函数名相同吗?why?
double fac(int n)
{
int i=1;
double fac=1;
for(i=1;i <=n;++i)
{
fac=fac*i;
}
return(fac);
}
int main()
{
int n;
double fac;
scanf( "%d ",&n);
fac=fac(n);
printf( "%.3f ",fac);
return 0;
}
[解决办法]
全局变量名和函数名不能相同。此外,若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内不能使用相应的全局变量或函数。
--------------------------------------------
也就是在同一个作用域范围内不能引入两个相同的名字,因为会引起解析冲突。
若局部变量名与全局变量名或函数名相同,则在该局部变量作用范围内,也不是不能使用对应的全局量,可以用block
比如 int i = 0;
int main()
{
int i;
// 此处只有local 的i可见
// open a new block
{
// 此处则只有全局的i 可见
}
}
[解决办法]
写代码的可贵之处就是规范性,老老实实的写代码,对你而言是没有坏处的。
过多的去抠语法,吃亏的肯定是你自己,大部分编译器并不是全部支持 C 的全部语法的。
刚开始写代码应该在健壮性、可读性、效率上苦下功夫,很多东西自然而然就能体会。
慢慢的你所关注的就不再是这些琐碎的语法,而是整体的架构。这是一个质的提高。
这是别人告诉俺的,不过不幸的是俺还是处在初级阶段,遗憾!!!