黑马程序员技术交流社区

标题: 我的错误整理 [打印本页]

作者: paradise6    时间: 2015-8-6 07:35
标题: 我的错误整理
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后的代码,但是只能用于+,与后面的代码作用域混乱,所以会报错

图片1.png (23.21 KB, 下载次数: 55)

图片1.png

图片2.png (39.25 KB, 下载次数: 103)

图片2.png

作者: hejunxin    时间: 2015-8-6 08:16
这些错误确实是经常犯
作者: neverbloom7    时间: 2015-8-7 06:50
用心学习了!
作者: paradise6    时间: 2015-8-7 07:55
neverbloom7 发表于 2015-8-7 06:50
用心学习了!

加油




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2