高手来,C语言问题。

来源:百度知道 编辑:UC知道 时间:2024/06/05 05:51:22
1. main()
{
int a=1,b=2;
int c;
c=a+b;
printf("%d\n",c);
}
2. main()
{
int a=1,b=2;
{ int c;
c=a+b;
}
printf("%d\n",c);
}

请问定义的两个变量C 有什么区别啊?

第一个程序中的变量c在整个主函数中都可见。第二个程序中的变量c只在定义它的一对大括号内(块语句)内可见,在这对大括号外是无效的(未定义)。

第一个程序中的变量c对整个程序都有效~~~~第二个程序中的变量c只能管到嵌入的括号内容~~即只管到c=a+b 这一步,而这个程序printf里的
c因为未定义而无效

第二题的c只在离他最近的那对大括号里才有用,出了括号就没用了,括号就是它的作用域

第一题中的运行结果是3.其中的那个c在整个主函数中可见;
第二题中,由于加了花括号,故变量C只在那个括号内可见,出了括号无效。第二个程序运行会出错。
你可以试试看

这两个C定义的范围不一样,第一道中的C在main函数中都可以引用,而第二道中的C只在中间那对花括号中可以引用