首页 > 其他分享 >关于C语言变量存储类型和生存期

关于C语言变量存储类型和生存期

时间:2023-05-17 10:12:10浏览次数:49  
标签:存储 变量 外部 局部变量 C语言 生存期 全局变量 函数

1、局部变量和全局变量

  1、局部变量   在函数的开头定义;在函数的复合语句内定义;在函数的外部定义。

  2、全局变量  在函数之外定义的变量是外部变量,外部变量就是全局变量(增加了函数数据联系)

  3、当全局变量和局部变量同名,在局部变量的作用范围内,局部变量有效,全局变量被屏蔽

2、变量的存储类型和生存期

  1、自动变量(auto):函数中的局部变量,如果不专门用static存储类别,都是动态的分配存储空间,存储在动态存储区中,定义时auto可以不写。(离开函数,值就消失)

  2、静态局部变量(static):有的局部变量的值在函数调用结束后不消失儿继续保留原值,占用存储单元不释放,在下次调用变量时,改变量已有值,,存储在静态存储区中(离开函数,值仍保留)

  3、寄存器变量(register):提高执行效率,存储在寄存器中(离开函数,值就消失)

  4、全局变量:都存放在静态存储区中,作用范围:

    1、在一个文件内扩展外部变量的作用域(非静态的外部变量,允许其他文件使用)

    2、将外部变量的作用扩展到其他文件(非静态的外部变量,允许其他文件使用)

    3、将外部变量的作用限制在本文件中(static) 静态外部变量 (只限本文件使用)

        static:局部变量:存储在静态存储区中,变量在整个程序执行期间不释放,其所分配的空间始终存在

           全局变量:作用域只限于本文件模块。

    

标签:存储,变量,外部,局部变量,C语言,生存期,全局变量,函数
From: https://www.cnblogs.com/gunancheng/p/17407598.html

相关文章

  • 一个程序设计业务中,如果需要这个表数据对应3种业务,但是唯独其中一种要多几个字段去展
    作为一个AI助手,我可以为您提供一些设计思路,但是最终的决定应该基于具体场景和业务需求。一种解决方案是在原表基础上新增字段。这种方法简单快捷,可以避免复杂的表关联,但是会使得表结构变得臃肿,不利于维护和拓展。如果这个表在后续的业务中还需要扩展字段,就会更加困难。另一种解......
  • 如何在ubuntu安装C语言环境
    1、下载vimapt-getinstallvim2、下载gccapt-getinstallgcc3、创建一个C语言目录,方便找C文件mkdirC语言4、用vim创建C文件vi99乘法表.c5、用99乘法表代码为例,输入以下代码进行测试可复值的代码放在这#include<stdio.h>intmain(){inti,j,c;......
  • 基于C语言开发一个图书管理系统[2023-05-16]
    基于C语言开发一个图书管理系统[2023-05-16]2020级计算机应用专业毕业设计题目及要求一、设计内容及要求:基于C语言开发一个图书管理系统,完成系统分析、设计和开发。设计目的:设计一个可以实现增删改查、借书还书的图书借阅管理系统。功能要求:图书管理系统一般包括:借书还书、......
  • windows vsCode 支持C语言
    首先下载MinGWhttps://osdn.net/projects/mingw/releases/  基本上就是安装,然后结束安装完的样子在里面找到mingw32-gcc.bin,mingw32-gcc-g++.bin,以及mingw32-gdb.bin第一个是c语言文件的编译器,第二个是c++的,第三个是用来调试编译后文件的。 然后点Installation->Applya......
  • 10.二级指针,指针的动态存储,常量与指针的结合、指针与数组的结合及指针函数
    二级指针的语法指针的动态存储常量指针和指针常量指针数组和数组指针指针和函数的结合二级指针的语法语法:数据类型**变量名 数据类型*变量名[常量]inta=10;int*p=&a;int**dp=&p;cout<<p<<""<<*dp<<""<<**dp;输出结果......
  • 打卡 c语言趣味编程 分糖果
    问题描述:10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块,第4个小孩22块,第5个小孩16块,第6个小孩4块,第7个小孩10块,第个小孩6块,第9个小孩14块,第10个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样......
  • 06-高速缓冲存储器
    06-高速缓冲存储器1.概述1.1为什么使用cachecpu发展速度很快,存储器发展速度很慢,CPU读取的指令,想要获取或者写入的数据必须等待存储器完成读写,cpu再快,存储器慢,cpu也只能进行空等,为了避免CPU空等的现象,在CPU和内存(DRAM)之间加入缓存,缓存采用SRAM缓存容量小,速度高主存容量大......
  • 编程打卡:C语言程序设计
    #include<iostream>#include<iomanip>usingnamespacestd;classMatrix{private:introw;intcolumn;int**mat=nullptr;public:Matrix(intr=1,intc=1):row(r),column(c){mat=newint*[row];f......
  • C语言基本概念之表达式
    什么是表达式(表达式的定义)?表达式是C语言的重要语法成分,不过对于表达式的定义,好像从来没有人关注过。今天就孔乙己一把吧,哈哈。先贴标准对expression的定义(ISO/IEC9899:20116.5):Anexpressionisasequenceofoperatorsandoperandsthatspecifiescomputationofavalue,o......
  • [每天例题]蓝桥杯 C语言 笨小猴
    笨小猴题目  思路分析1.首先难点是找出出现次数最多与最少的字母,我们可以通过建立两个数组,一个是字符数组,用来存储字符串,一个是整形数组,用来记录每个字母对应的出现次数,然后再使用for—if配合找出最大最小数2,第二个可以通过调用函数来确定差值是否为素数代码#include<......