警告,变量已死亡,C语言基础教程之变量作用域

任何编程中的范围都是程序的一个区域,其中定义的变量可以存在,并且超出该范围,无法访问它。有三个地方可以用C编程语言声明变量

l 在函数或块内部,称为局部变量。

l 在所有函数之外,称为全局变量。

l 在函数参数的定义中称为形式参数。

让我们了解什么是局部全局变量,以及形式参数。

在函数或块内声明的变量称为局部变量。它们只能由该函数或代码块中的语句使用。本地变量不为其自身以外的函数所知。以下示例显示了如何使用局部变量。这里所有变量a,b和c都是main函数的局部变量。

更多C/C++学习资料,请私信我“代码”,即可获取

全局变量在函数外部定义,通常在程序之上。全局变量在程序的整个生命周期中保持其值,并且可以在为程序定义的任何函数内访问它们。

任何函数都可以访问全局变量。也就是说,全局变量在声明后可用于整个程序。以下程序显示了如何在程序中使用全局变量。

程序对于局部变量和全局变量可以具有相同的名称,但函数内的局部变量的值将优先考虑。这是一个例子:

编译并执行上述代码时,会产生以下结果:

value of a in main = 10

value of a in sum = 10

value of b in sum = 20

value of c in main = 30

定义局部变量时,系统不会初始化它,您必须自己初始化它。当您按如下方式定义全局变量时,系统会自动初始化全局变量

正确初始化变量是一个很好的编程习惯,否则你的程序可能会产生意想不到的结果,因为未初始化的变量将在其内存位置获取一些已经可用的垃圾值。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PhpZendo

带你玩转 JavaScript ES6 (七) – 异步

本章我们将学习 ES6 中的 Promise(异步) 相关知识,了解如何使用 Promise 对象创建异步程序

601
来自专栏Kevin-ZhangCG

[ Java面试题 ]算法篇

20111
来自专栏Jackson0714

PHP内核之旅-4.可变长度的字符串

1153
来自专栏我的技术专栏

《effective Go》读后记录:GO基础

2254
来自专栏Golang语言社区

【基础篇】Go 语言结构

Go Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代...

33512
来自专栏微信公众号:Java团长

Java面试题整理及参考答案

允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点:

1072
来自专栏漫漫前端路

当 Vue 处理数组与处理纯对象的方式一样

当给数组设置 length 时,如果大于数组本身长度,新元素则会以 empty 填充,如下所示:

1252
来自专栏架构说

声明和定义的区别(深入理解)

问题 声明和定义区别 definition declared 微信排版支持makdown语法不友好 可以查看原文链接 先看一下 例子1 编译有没有问题? cl...

27110
来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列8

? 一、heap和stack有什么区别 栈是一种线形集合,其添加和删除元素的操作应在同一段完成。 栈按照后进先出的方式进行处理。 堆是栈的一个组成元素 ...

3065
来自专栏Golang语言社区

Go 语言结构

o Hello World 实例 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 & 表达式 注释 接下来让我们来看下简单的代码,该代码...

3547

扫码关注云+社区