局部变量和全局变量区别?

如果全局变量和局部变量中用了同一个字符变量.那么最后输出的应该是全局变量中定义的值吧?
回复3楼:前两个输出2,3我知道是局部的?为何第三个输出的是2呢?而不是全局变量的1呢?

第1个回答  2009-02-01
输出局部的。
原则:内层变量在其生存期内会屏蔽掉同名的外层变量。例如
const char c = '1';
void fun()
{
char c = '2'; /* 这个c的生存期为函数运行开始至函数退出。中途若遇到内层同名的c,则本c暂时不可见(被屏蔽)*/
printf("%c\n", c);

{
char c = '3';
printf("%c\n", c);
} /* 最内层的c生存期至此结束 */

printf("%c\n", c); /* 此处的c代表函数内起始处的c(全局变量c被屏蔽),故值为'2' */
} /* 函数fun退出处 */
上面函数运行后,输出的内容为
2
3
2
第2个回答  2009-01-29
输出的应该是局部变量的值。本回答被提问者采纳
第3个回答  2009-01-29
输出的是局部的···
如果是同一个字符的话,那输出最靠近输出语句的那一个变量。
第4个回答  2009-01-30
按实际情况分析问题.
你最好是拿出一个例子来,我们来做说明.
相似回答