1. 变量使用注意 变量作用域(作用范围):从定义变量的那行代码开始,一直到所在的代码块结束。 代码块的作用:及时回收不再使用的变量,为了提升性能 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps5513.tmp.png int test() { score=200; return 0; } int main() { test(); score=100; //错误写法,test函数调用结束后,函数中变量所占存储空间自动清除 int b; b=a; //错误写法,变量a还未定义 int a=10; return 0; }
报错:使用未定义标示符’a’ file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps5563.tmp.png include<stdio.h> int main() { { int a=10; //在函数内部{}表示代码块,代码块执行完毕后,其所在存储空间消失 } printf (“a=%d\n”, a); //报错:使用未定义标示符 int score=100; { int score=200; { score=50 //没有定义新变量,而是把外部代码块score改为50 } printf (“score=%d\n”, score) //打印结果为50 } printf (“score=%d\n”, score) //打印结果为100 return 0; } 2. 作用域不明确 如果要在if后面的语句中定义新变量,必须用{} file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps5564.tmp.png #include<stdio.h> int main() { /* if (10>6) { int a=10 } printf(“%d\n”, a) //a处在代码块,代码块结束后,a所在存储空间消失,报错 */ if (10>6) int a=10 //a的作用域不明确,编译器不知a属于if还是整个代码,报错 return 0; } file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps5584.tmp.png 如果要在case后面定义新变量,必须用{}
这个例子中case ’+’后的代码如果不加{},那么sum的作用域不明确 sum看起来在switch后的代码,但是只能用于’+’,与后面的代码作用域混乱,所以会报错
|