问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

静态局部变量与全局变量问题

发布网友 发布时间:2022-04-29 18:42

我来回答

4个回答

热心网友 时间:2022-06-19 14:17

从生存周期看,所有静态和外部变量都是全局变量。
从可见性看,外部变量是命名冲突可见性全程序可见,引用可见性自引用说明和定义以下可见。
说明以下,同名变量(标识符)第二次定义称为命名冲突,外部变量是真正的全局变量。

整个程序不可有同名变量和函数。对于命名冲突外部变量是全程序可见。

引用可见性,指的是程序可以使用该变量(变量已经在某处定义,此处可以使用)。

函数外部的静态变量是文件可见的。其他文件不可以通过名字使用该变量。
其他文件里同名的,本文件不可见的变量不和该变量产生命名冲突。
其他文件里同名的静态变量是另外一个变量。

同一文件内的同名的函数外部的静态变量和外部变量(包括本文件定义的和引用的外部变量)产生命名冲突。
函数内部的静态变量具有函数作用域,会隐藏同名的外部和文件静态变量(和函数名)。

其中函数内部,语句组内定义的静态变量,具有语句组作用域,会隐藏本语句组外面定义的所有同名标识符。
函数内部的静态变量,函数外部的静态变量,外部变量,具有全局的生存期。

静态变量以外的局部变量具有函数作用域会隐藏同名的外部和文件静态变量(和函数名)。
其中语句组内定义的局部变量,具有语句组作用域,会隐藏本语句组外面定义的所有同名标识符。

同一作用域的同名标识符(主要是函数和变量)会产生命名冲突!!
C中一切不造成隐藏的,同名标识符,会产生命名冲突,编译不能通过!!
C++由于函数可以重载,有二义性的函数命名冲突,编译不能通过!!
函数和变量的命名冲突,编译不能通过!!

函数参数 具有函数作用域。

热心网友 时间:2022-06-19 14:18

静态局部变量通常放在函数内部,只能在函数内部,只进行一次初始化,每次执行函数时保持上一次执行时的值,如下代码所示:
void func() {
static int x = 0; // 在对func的三次调用中,x只进行一次初始化
printf("%d\n", x); // 输出x的值
x = x + 1;
}

int main(int argc, char * const argv[]) {
func(); // 输出0
func(); // 输出1
func(); // 输出2
return 0;
}
静态全局变量是在全局变量前加一个static,使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。
在多文件组成的程序里,全局变量与全局静态变量是不同的。全局静态变量使得该变量成为定义该变量的源文件所独享,使它文件不能使用。

热心网友 时间:2022-06-19 14:18

局部变量与全局变量问题。
1、局部变量是当前子程序中使用的变量,变量改变不影响除当前子程序外的程序,只能让当前子程序使用。
2、全局变量是指改变量能够被当前程序所有子程序使用的变量。

热心网友 时间:2022-06-19 14:19

就算它不是静态变量,return的值也是它,这就要看局部变量的作用域了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...油桶横放长6、25米,圆的直径为2、05米,液体横放的高度为1、8米。求... 一个圆桶半径为1.2米,高为12米,现将油桶平放,此时装油的高度为1.722米... 大油桶是横放的,油桶圆的直径是2.15米,长是3.6米,里面的净油位高度... 一个圆柱油桶横着放,长5.5米,直径2.4米,里面装着油,油高度1米,求现在... 有一个圆柱体桶横放,长7米,高2.7米,里面装的油与油桶距离1.2米,求油的... 圆柱形油桶横放时油部分占底面圆周的三分之一当油桶直立油的高度和桶... 有一个圆柱体桶横放 有一个圆柱体桶横放 长9.4米 高2.6米 里面装的油与桶底距离0.6米,求里 ... 电脑单独安装outlook教程如何在电脑上安装outlook 直角转弯为什么会压角 日本天皇现在的住址在东京么? 静态是什么意思 C语言如何证明静态局部变量胡生命期是全局的 东京中央区的日文地址翻译==急!!! 静态局部变量的生命周期 静态变量的变量特点 C++中静态局部变量的生存期什么时候开始 C语言静态局部变量和全局变量有什么区别? 静态变量有何特点?如何存取静态变量? 静态变量的生存期 静态局部变量是不是一经初始化,不会再第二次初始化? 什么是静态变量,静态变量=全局变量,动态变量=局部变量吗?? 静态变量的生存期与整个程序的生存期相同对不对 C++中静态局部变量的生存期是什么?是贯穿整个程序还是从调用该函数开始到整个程序结束? 那么离婚女孩子一般会判给谁呢? static局部变量的生存期 怎样系鞋带最牢.不易散开 怎么绑鞋带可以比较牢不容易送掉 夫妻离婚女孩一般会判给哪方 华为应用:HwAps 包名:com.huawei.android.hwaps 是什么?可以删吗? C语言中函数返回什么类型的变量哪些可以是临时,哪些必须是静态或全局 在日本东京玩住哪里比较好 谁给我解释下C语言中变量的生命周期 简述变量的作用域与生存周期的含义并根据这两个概念对变量进行... c语言中什么时候用全局变量什么时候用局部变量 东京的邮政编码和区号 日本东京的邮编是多少? 帮忙把 日本地址:日本 东京 大田区大森北 3-39-8 401室翻译成英文的 谢谢 烈火燃烧这几个字的拼音怎么写 日本中央机关在东京哪里 日,月,水,火的拼音 知念在日本的东京都的具体地址哦、、 如何合理备考注册会计师考试? 淘宝退货退货单号在哪里填写 淘宝里面退货单号在哪里找 先进 评价 退货单号,淘宝退货单号填在哪 cdr无法保存、另存、导出、导入,点击毫无反应- 问一问 郑波的先进事迹 coreldraw x4 为什么有些文件导出不了