A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© paradise6 中级黑马   /  2015-8-6 07:35  /  524 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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, 下载次数: 54)

图片1.png

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

图片2.png

3 个回复

倒序浏览
这些错误确实是经常犯
回复 使用道具 举报
用心学习了!
回复 使用道具 举报

加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马