黑马程序员-- 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语言中除了指针 ...
随机推荐
- Oracle Dataguard三种保护模式概述(转)
Oracle的DataGuard技术有三种实现模式,分别是max performance.max availability.max protection这三种模式. 以下是来自Oracle文档的摘要信 ...
- beforefieldinit释义
首先让我们认识什么是,当字段被标记为beforefieldinit类型时,该字段初始化可以发生在任何时候任何字段被引用之前.这句话听起了有点别扭,接下来让我们通过具体的例子介绍. /// <su ...
- windows下如何使用ssh远程登录Linux
1.ssh的安装 sudo apt-get install ssh 或者在Linux情况下,自带有ssh,从第二步开始 2.生成密钥 ssh-keygen 中间过程会提示你存放密钥的地方Enter ...
- HTML代码中<%%>、<%=%>、<%:%>各是什么意思?分别用来实现什么的?
运行.获取后台代码或值.<%%>之间可以写服务器端代码,比如 <% for(var i=0;i<10;i++){ //执行循环体 } %> 又如 <% for(va ...
- 图的广度优先/层次 遍历(BFS) c++ 队列实现
在之前的博文中,介绍了图的深度优先遍历,并分别进行了递归和非递归实现.BFS 无法递归实现,最广泛的实现是利用队列(queue).这与DFS的栈实现是极其相似的,甚至代码几乎都很少需要改动.从给定的起 ...
- PHP常用类型判断函数总结
1.gettype():获取变量类型 2.is_array():判断变量类型是否为数组类型 3.is_double():判断变量类型是否为倍浮点类型 4.is_float():判断变量类型是否为浮点类 ...
- zmud中文版_汉化补丁_汉化文件ZMUD破解
ZMUD721中文版 http://pan.baidu.com/s/1mixwIoC
- 列表checkbox全选
$(document).ready(function(){ $(":checkbox:eq(0)").change(function(){ if ($(this).is(" ...
- How to use pagination in Magento
classYour_Module_Block_Entityname_ListextendsMage_Core_Block_Template { protected function _construc ...
- SQL Server中的DATEPART函数的使用
下面文章来自:http://blog.csdn.net/hello_world_wusu/article/details/4632049 定义和用法 DATEPART() 函数用于返回日期/时间的单独 ...