c语言中的变量名什么情况下可以用相同的变量名

就是例如for(i=1;i>2;i++)
for(i=1;i>2;i++)

不同的作用域内可以使用相同的变量名,优先使用小范围的作用域。
作用域:
全局段、函数段、块

1.全局段定义变量a, main函数中再定义a, 那么main中函数中定义的a, 看下面例子
2.块,由花括号{} 包含的区域。比如if分支体, for,while循环体中定义的变量,其作用域是花括号内。

例:
#include <stdio.h>

int a = 100;

int main(void)
{
printf("a = %d\n", a); // main函数还没有定义a, 这里使用全局变量a, 100

int a = 50;

printf("a = %d\n", a); // 使用main函数定义的局部变量a, 50

if (1) {
int a = 75;

printf("a = %d\n", a); // 使用本块中定义的a, 75
} // 离开块, 块中定义的a就不存在了。

printf("a = %d\n", a); // 还在main函数中, 依然使用main局部变量a, 50

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-14
首先呢,你写的这两个循环别用同一个变量,会导致错误的,然后呢,如果需要在同一个程序里边用名字相同的变量是完全可以的,但是要注意一些地方,记得C教材里有讲作用域的,比如最简单的就是在不同函数里使用相同名字的变量,但是这个变量必须在这个函数里边声明,这样使用起来互不干扰,完全没有问题,这就是代码块作用域,那么,还有一种是当一个是全局变量一个是局部变量时,也不会互相干扰使用,当没有使用到局部变量时,这个局部变量保持默认值,而全局变量会随程序而运行,当程序运行到这个局部变量所在代码块时,全局变量保存当前值,而局部变量开始运行。
希望我的回答能帮助到你。
第2个回答  2013-06-14
不在同一个作用域内,比如一个在被调函数,一个在主函数

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网