就是例如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.全局段定义变量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
不在同一个作用域内,比如一个在被调函数,一个在主函数