一个局部变量,再次被定义和赋初值
#include<stdio.h>
void main()
{
int a=2;
for(a=1;a<100;a++)
{
int a=100;
printf("%d\n",a);
}
}
输出的是99个100,这是为什么呢?
局部变量的作用域不是当前的函数吗,为什么不是加到101,就直接退出呢?
[解决办法]
#include<stdio.h>void main(){int a=2;for(a=1;a<100;a++, printf("%x\n", &a)) // 打印循环体外的a的地址{int a=100; // 这个a和循环外面的a(以及for语句中的a),根本不是同一个变量!printf("%x\n", &a) // 打印循环体内的a的地址printf("%d\n",a);}}