一道VC编程;

来源:百度知道 编辑:UC知道 时间:2024/09/25 06:27:31
main()
{int a=1,b=2,c=3;
++a;
c+=++b;
{int b=4,c;
c=b*3;
a+=c;
printf("first:%d,%d,%d\n",a,b,c);
a+=c;
printf("second:%d,%d,%d\n"a,b,c);
}
printf("third:%d,%d,%d\n"a,b,c);}
求printf("third:%d,%d,%d\n"a,b,c);}中a的值为什么是26而不是由此步{int a=1,b=2,c=3;
++a;得来的2,求详解。。。。

++a后a为2,
而模块
{int b=4,c;
c=b*3;
a+=c;
printf("first:%d,%d,%d\n",a,b,c);
a+=c;
printf("second:%d,%d,%d\n"a,b,c);
}
中没有定义局部变量a,那么里面的a就使用模块前面的a,这个就好比main()中使用全局遍历的意思,所以a+=c;a=14,a+=c;a=26;这个a是int main()中的,自然保留a=26,如果在模块中定义一个a,那外面的a=2.