这里通过变量作用域的两种错误用法来介绍一下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语言变量作用域与代码块的更多相关文章

  1. 黑马程序员—C语言的函数、数组、字符串

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.函数 定义:函数是代码复用的一种机制. 函数的基本语法: 返回类型 函数名 ( 参数类型 参 ...

  2. 黑马程序员——C语言基础 变量类型 结构体

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...

  3. 黑马程序员——C语言基础语法 关键字 标识符 注释 数据及数据类型

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)C语言简单介绍 (1)C语言程序是由函数组成的任何C语言程序都是由一 ...

  4. 黑马程序员——C语言基础 枚举 宏定义 自定义 static exterm

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)枚举 1)枚举类型的定义 枚举是C语言中的一种基本数据类型,并不是构 ...

  5. 黑马程序员——C语言基础 函数

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...

  6. 黑马程序员——OC语言基础语法 面向对象的思想

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...

  7. 黑马程序员——C语言基础 scanf函数 基本运算 三目运算符

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (一下内容是对黑马苹果入学视频的个人知识点总结) (一)scanf函数 1>  简单介绍一下scanf函数   这是在 ...

  8. 黑马程序员——C语言基础 流程控制 选择结构和循环结构

    ---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...

  9. 黑马程序员——C语言基础 指针

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)指针 首先指针是C语言中非常重要的数据类型,如果你说C语言中除了指针 ...

随机推荐

  1. SQL Server 事务嵌套

    示例代码: DECLARE @TranCounter INT; SET @TranCounter = @@TRANCOUNT; -- Procedure called when there is -- ...

  2. C++ buffer缓冲区的秘密

    在搞数据库和C++进行连接的时候,遇到一个问题,就是如果前面用到了fflush(stdin)即清空缓冲区,就OK,如果不清空缓冲区就不能把记录加入到Mysql的数据库中, 但是即便如此,这个问题目前还 ...

  3. MFC对话框中解决回车键、ESC键退出的方法

    BOOL CYourDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message==WM_KEYDOWN&&pMsg->wP ...

  4. mysql导出命令

    数据库备份 /data/mysql/bin/mysqldump -hlocalhost -u'root' -p'do' my_db --single-transaction -q | gzip > ...

  5. Android_高仿建行圆形菜单

    转:http://blog.csdn.net/lmj623565791/article/details/43131133 1.概述 今天打开建行看存款,一看伤心欲绝,再看:我擦,这个圆形菜单挺炫.于是 ...

  6. 前端开发面试题收集 HTML

    Doctype是什么?说明特点. <!doctype>声明必须处于HTML文档的头部,在标签之前. <!doctype>声明不是一个HTML标签,是一个用于告诉浏览器使用哪种H ...

  7. PHP 导出 Excell

    Vendor('PHPExcel179.PHPExcel');$objPHPExcel = new PHPExcel(); //创建PHPExcel对象//设置属性$objPHPExcel->g ...

  8. Composer加速

    在composer.json中添加{ "repositories": [ {"type": "composer", "url&qu ...

  9. leetcode 算法刷题(一)

    今天开始刷Leetcode上面的算法题.我会更新我刷题过程中提交的代码(成功和不成功的都有)和比较好的解法 第二题 Add Two Numbers 题目的意思:输入两个链表,这两个链表都是倒序的数字, ...

  10. 解决Eclipse下第三方库无法导航源代码

    写在前面(的废话):Eclipse无法导航代码,存在的可能性非常多,这里我们只讨论在引用第三方库时无法导航的情况,是一个很简单的Case,但是搜索能力好像不太及格,没找到一针见血的方案,于是自己研究了 ...