黑马程序员-- C语言变量作用域与代码块
这里通过变量作用域的两种错误用法来介绍一下C语言变量作用域
其次对代码块的使用进行了简单说明:
#include <stdio.h>
1.变量的作用域(作用范围)
变量定义的那一行开始,直到变量所在的代码块结束为止。
2.代码块
作用:及时回收不再使用的变量,提高程序性能
-----------------------------------------------------------------------------
下面两种做法是错误的,都是在变量作用域之外使用它。
做法一:
int main(){
int score;
score = a + 10;
int a = 100;
return 0;
}
运行结果:变量使用注意.c:7:13: error: use of undeclared identifier 'a'
score = a + 10;
^
1 error generated.
-----------------------------------------------------------------------------
做法二:
int test()
{
int score = 100;
return 0;
}
int main()
{
test();
printf("%d",score);
return 0;
}
运行结果:变量使用注意.c:26:17: error: use of undeclared identifier 'score'
printf("%d",score);
^
1 error generated.
----------------------------------------------------------------------------
代码块的使用
int main()
{
float height = 1.65;
height = height + 0.1;
int score = 100;
//...没有再使用height
printf("%d",score);
}
上边main函数中,变量height在执行:height = height + 0.1之后再也没用到height,为了提高程序性能,可以如下使用代码块:
int main()
{
{
float height = 1.65;
height = height + 0.1;
}//代码块执行完后,变量height从程序内存中释放
int score = 100;
//...没有再使用height
printf("%d",score);
}
-----------------------------------------------------------------------------
代码块的例子:
int main()
{
int a = 20;
int score = a + 100;
printf("%d\n",score);//120
{
int score = 50;
{
score = 10;
printf("%d\n",score);//10
}
a = 10;
}
{
score = a +250;
int score =30;
printf("%d\n",score);//30
}
printf("%d\n",score);//260
return 0;
}
代码块内部使用它自己没有定义的变量,这个变量就是该代码块向它外层找最近定义的那个代码块中的变量。
黑马程序员-- C语言变量作用域与代码块的更多相关文章
- 黑马程序员—C语言的函数、数组、字符串
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.函数 定义:函数是代码复用的一种机制. 函数的基本语法: 返回类型 函数名 ( 参数类型 参 ...
- 黑马程序员——C语言基础 变量类型 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...
- 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...
- 黑马程序员——C语言基础 枚举 宏定义 自定义 static exterm
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)枚举 1)枚举类型的定义 枚举是C语言中的一种基本数据类型,并不是构 ...
- 黑马程序员——C语言基础 函数
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...
- 黑马程序员——OC语言基础语法 面向对象的思想
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...
- 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1> 简单介绍一下scanf函数 这是在 ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- 黑马程序员——C语言基础 指针
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)指针 首先指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...
随机推荐
- pagination jquery最简单的分页【无刷新和刷新都通用】
参数说明 参数名 描述 参数值 maxentries 总条目数 必选参数,整数 items_per_page 每页显示的条目数 ...
- C# for循环①护栏长度 ②广场砖面积 ③判断闰年平年
// static void Main(string[] args) { const double PI = 3.14; const int BAR_U ...
- TSF自定义候选词列表界面
概述 TSF(Text Service Framework),已经取代IMM(Input Method Manager),成为win8+系统的输入法框架.现在有个需求,触摸屏上要使用软键盘(虚拟键盘, ...
- oracle表导入导出
数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu. ...
- poj 3411 Paid Roads
题意:有m条路,n座城市,走这些路是要付费的,每条路由两种付费方案,设一条路两端是a,b,如果走完这条路在b点付费的话,应付r,如果走这条路之前在c点付费的话,应付p,求从1端点走到n端点的最小费用. ...
- Facebook发布C++ HTTP框架Proxygen
Facebook 宣布发布C++ HTTP 框架 Proxygen,其中包括了一个 HTTP server.Proxygen 是 oxygen 的谐音,支持 SPDY/3 和 SPDY/3.1,未来还 ...
- mysql学习(七)-索引学习
常规索引: 在常用查询的字段上使用常规索引 创建表时一块创建索引 create table if not exists carshop(id int not null auto_increment, ...
- 提高php代码质量 36计
1.不要使用相对路径 常常会看到: ? 1 require_once('../../lib/some_class.php'); 该方法有很多缺点: 它首先查找指定的php包含路径, 然后查找当前目录. ...
- php简单对象与数组的转换
function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ ...
- zmud中文版_汉化补丁_汉化文件ZMUD破解
ZMUD721中文版 http://pan.baidu.com/s/1mixwIoC