为什么第一个打印的a是36啊?求解,谢谢。
#include <stdio.h>
int a=3;
void test()
{
int a=1;
a+=1;
{
int a=a+1;
printf("%d\n",a);//36
}
printf("%d\n",a);//2
}
int main (void)
{
test();
printf("%d\n",a);//3
}
为什么第一个打印的a是36啊?求解,谢谢。
#include <stdio.h>
int a=3;
void test()
{
int a=1;
a+=1;
{
int a=a+1;
printf("%d\n",a);//36
}
printf("%d\n",a);//2
}
int main (void)
{
test();
printf("%d\n",a);//3
}
因为你定义的是一个局部变量,没有初始化,所以输出36是碰巧而已。