
正文
c语言子函数中同名变量 子类同名变量
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言中函数名是否可以和变量同名?
答案是:否
c语言中,变量和函数名称不允许相同,比如你定义一个函数int a();那么你的main函数中,如果int a=a();则会报错,这是c语言中非常讨厌的一点,当然,反对者可能会说:“容易引起名称混淆,导致不容易维护”,这是很牵强的说法,用现在流行的词汇叫做:强行为c语言的缺点洗白,c语言的这个限制,极大程度的增加了初学者,尤其是自学者的学习难度,因为初学者不会考虑变量的含义,通常定义aa,bb,cc这样更利于快速学习,但是出来这个限制,并且不知情的情况下,甚至都不知道在网上如何搜索来解决这个小问题,所以个人觉得这是c的不友好之一
相关问答
Q1: C 子函数名与主调函数里的变量可以同名么
可以。
子函数里c语言子函数中同名变量的变量只在这个函数内有效c语言子函数中同名变量,并且忽略其外部的同名变量。
Q2: C语言中,在同一个函数下局部变量和局部静态变量可以同名吗?
不可以,同一作用域的变量名不允许相同, 不同作用域下的同名变量起作用的是最后一层。
Q3: c语言中局部变量可以同名么?
在C语言中,相同作用域范围的局部变量不可以同名。所以,在不同作用域下,可以出现局部变量同名的情况。
1 在不同函数中。
函数不同,局部变量完全无关,自然可以使用相同的名字。
2 在同一函数中,但作用域不同。
局部变量的作用域是定义位置,到所在大括号结束。
所以只要两个局部变量属于不同的大括号中,就可以同名。
比如
void func()
{
int a;
while(1)
{
int a;
}
for(;;)
{
int a;
}
}
这里面,第一个a的作用域包含了第二个和第三个,而后两个之间作用域不相关。三个a分别属于三个不同的大括号,可以同名。
c语言子函数中同名变量的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于子类同名变量、c语言子函数中同名变量的信息别忘了在本站进行查找喔。








