c语言中局部变量可以同名么?

2024-11-17 15:52:31
推荐回答(5个)
回答1:

在C语言中,相同作用域范围的局部变量不可以同名。所以,在不同作用域下,可以出现局部变量同名的情况。

1 在不同函数中。

函数不同,局部变量完全无关,自然可以使用相同的名字。

2 在同一函数中,但作用域不同。

局部变量的作用域是定义位置,到所在大括号结束。

所以只要两个局部变量属于不同的大括号中,就可以同名。

比如

void func()
{
    int a;
    while(1)
    {
        int a;
    }
    for(;;)
    {
        int a;
    }
}

这里面,第一个a的作用域包含了第二个和第三个,而后两个之间作用域不相关。三个a分别属于三个不同的大括号,可以同名。

回答2:

可以同名,例如:
在不同的两个循环内:
for(int i=0; i<5; i++)
{
......
}

for(int i=0; i<6; i++)
{
.......
}

回答3:

按你的语意来说,答案是不可以的.
局部指的就是一个域,在同一个域内变量是不可以同名的.在VC++2005之前的版本中.for循环的条件名句是限制在for循环内的,不过2010后的VC++版本,在for循环条件内申请的变量在循环个再次申请了报错,

回答4:

局部变量在不同的子函数中可以同名,但是在一个子函数中不能。

回答5:

这个问题,其实举例子什么的都说都涵盖不清楚。可以通俗的这样说,在同一作用域内变量是不能重名的,原因很简单,要是重名了,编译器也不知道你调用的是哪个变量了。