对全局变量,static静态变量的理解

如果所有的变量按照下面的程序进行定义和声明,那么在main()函数中所有可用的变量为 ()。

void fun(int x)
{static int y;……return;
}
int z;
void main( )
{int a,b;fun(a);……
}

A.x,y
B.x,y,z
C.a,b,z
D.a,b,x,y,z

static静态变量的值在函数调用结束后会保持

x为static存储类型,只初始化一次,且生存期是整个和程序相同的,即函数推出后x的值也不改变,下次调用时继续保持的

**静态变量(Static Variable)**在计算机编程领域指在程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)存储空间的一类变量。与之相对应的是在运行时只暂时存在的自动变量(即局部变量)与以动态分配方式获取存储空间的一些对象,其中自动变量的存储空间在调用栈上分配与释放。

局部变量(Local Variable):定义在函数体内部的变量,作用域仅限于函数体内部。离开函数体就会无效。再调用就是出错。

全局变量(Global Variable):定义:所有的函数外部定义的变量,它的作用域是整个程序,也就是所有的源文件,包括.c和.h文件。

(函数体外只能进行初始化,不能进行赋值运算)

全局变量全部存储在静态存储区。在程序开始执行过程中给全局变量分配空间,程序执行完毕就释放空间。程序执行过程中固定的分配空间,而不需要动态进行分配是释放。

动态存储区主要存放以下数据:函数的形参、自动变量==(没有加static的局部变量)==、函数调用的现场现场保护和返回值。

动态存储区的数据,在函数开始调用时分配动态存储空间,函数结束时释放这些空间。

auto 变量:
函数中的局部变量,如果不专门的声明为 static存储,都是动态分配存储空间。数据存储在动态存储区内。函数中的形参和函数中的变量都属于此类,调用该函数时候系统自动的分配空间,在函数结束的时候,释放该空间。这些局部变量被称为自动变量。自动变量用 auto关键字声明(可以省略auto )。

static 变量:
有时候希望我们调用的函数在释放的时候不消失能保留原值,这就需要定义为静态局部变量。用关键字 static声明。

参考:https://blog.csdn.net/u013355826/article/details/53224303

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312479.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dotNET知音,19年归档

2019年下半年开通公众号,尝试着分享和技术交流,也很高兴认识很多NETer同行。为了方便阅读,进行归档,如果之前有错过的文章,这是一个很好的补课机会。.NETCore3.0:《.Net Core3.0 配置Configuration》《.Net…

顺序表和链表的优缺点理解

若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间?D A.双链表 B.单循环链表 C.带头结点的双循环链表 D.顺序表 想要存取任一指定序号的元素,链表实现这个功能的代价很大 本来顺序表的…

阿里如何应对亿级高并发大流量?如何保障高可用和稳定性!

作者:丁浪,目前在创业公司担任高级技术架构师。曾就职于阿里巴巴大文娱和蚂蚁金服。具有丰富的稳定性保障,全链路性能优化的经验。架构师社区特邀嘉宾!阅读本文,你将会收获: 高并发、大流量场景的常见问题和…

中缀转后缀

从中序表达式 转换为 后序表达式 例题: 利用栈对表达式19/(8-5)*4求值的过程中,操作数栈的最大容量是多少?(B )。 A.3 B.4 C.5 D.2 操作数栈:先是/(- , 然后遇到),则为/ &#xff0…

动手造轮子:写一个日志框架

动手造轮子:写一个日志框架Intro日志框架有很多,比如 log4net / nlog / serilog / microsoft.extensions.logging 等,如何在切换日志框架的时候做到不用修改代码,只需要切换不同的 loggingProvider 就可以了,最低成本的…

对循环队列的理解

循环队列存储在数组A[0…n-1]中,其头尾指针分别为f和r,头指针f总是指向队头元素,尾指针r总是指向队尾元素的下一个位置,则元素e入队时的操作为(B )。 A.A[r]e; rr1 B.A[r]e; r(r1)%n C.A[r]e;r(r1)%(n1) D.…

【C】@程序员,我们送给你一个成熟的Excel导入导出组件

程序员的显著特点有一天跟一位同事跟我闲聊,讨论起过去若干年软件行业的感受,他问了个问题:你觉得一个好的软件工程师最显著的特点是什么?我想了一会,说:大概是坐得住吧。某种意义上来说,在互联…

SummerBoot,将SpringBoot的先进理念与C#的简洁优雅合二为一

哈哈哈哈,大家好,我就是高产似母猪的三合,好久没写博客了,因为最近几个月在不断的加班,加班时长平均每个月120小时以上。今天是2020年的第一天,作为一条程序汪,觉得不做点啥好像对不起这个特别有…

树的度,结点,叶子结点,二叉树

设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1。则T中有多少个叶子结点? A.4 B.6 C.8 D.10 一棵含有n个结点的树,有n-1个分支,即 n 14 22 31 41 1 16; 又由于 n n0 n1 n2 n3 n4 n0 8; n0 8 16&#…

C#刷遍Leetcode面试题系列连载(6):No.372 - 超级次方

点击蓝字“dotNET匠人”关注我哟加个“星标★”,每日 7:15,好文必达!前文传送门:C# 刷遍 Leetcode 面试题系列连载(1) - 入门与工具简介C#刷遍Leetcode面试题系列连载(2): No.38 - 报数C#刷遍Le…

堆 最大堆 最小堆

堆是特殊的队列 从堆中取出元素是依照元素的优先级大小,而不是元素进入队列的先后顺序 堆最常用的结构是二叉树表示,不特指的话,它是一棵完全二叉树 因为高度为h的完全二叉树有结点2(h-1) 到2h-1个,且结点排布及其规律&#xff…

使用 Postman 测试你的 API

使用 Postman 测试你的 APIIntro最近想对 API 做一些自动化测试,看了几个工具,最后选择了 postman,感觉 postman 的设计更好一些,我们可以在请求发送之前和请求获取到响应之后都可以自定义脚本,很灵活。而且 postman 的…

散列查找 散列表(哈希表)

哈希表的平均查找长度是()的函数。 A.哈希表的长度 B.哈希表的装填因子 C.哈希函数 D.表中元素的多少 装填因子 关键字个数 / 表长 符号表:是 “名字(Name)–属性(Attribute)”对的集合 符号表…

使用 postman 给 API 写测试

使用 postman 给 API 写测试Intro上次我们简单介绍了 使用 postman 测试 API,这次主要来写一些测试用例以检查请求的响应是否符合我们的预期以及如何使用脚本测试使用 postman 内置的随机变量postman 内置的有一些产生随机值的变量,在发送请求时随机生成…

图 无向图 有向图

若无向图G (V,E)中含7个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是: A.6 B.15 C.16 D.21 (n-1)*(n-2)/21 6 * 5/2116 设无向图的顶点个数为N,则该图最多有多少条边?…

Excel催化剂回顾2019年产出(文章合集),展望2020年

一年结束,大家都对自己一年辛勤耕耘作一个总结,Excel催化剂也不落俗,也来一篇文章合集式的梳理,方便大家对Excel催化剂的产出有一个宏观全局的认识。不断创新中前行Excel催化剂从2018年开波以来,累计到如今已有114个大…

朗文3000词汇表带音标_英语零基础音标语法都不会词汇量3000 学雅思到6/6.5分 需要多久 该如何做?...

谢邀~题主好!看来题主的零基础非常纯正。你现在测试的单词量是3000,只能大概展示出你的一些基础,但其实真正的还是要看你会使用,真正理解用法、语境的词汇有多少,而不是为了看起来有多少的那个数字。那么首先题主最好的…

选择排序 插入排序 交换排序

动图演示: https://www.runoob.com/w3cnote/bubble-sort.html 选择排序 简单选择排序 在未排序的序列中,选出最小的元素和序列的首位元素交换,接下来在剩下的未排序序列中,再选出最小元素与序列的第二位元素交换,以此…

ASP.NETCore编程实现基本认证

HTTP基本认证在HTTP中,HTTP基本认证(Basic Authentication)是一种允许浏览器或其他客户端程序使用(用户名,口令)请求资源的身份验证方式,不要求cookie,session identifier、login page等标记或载…