任务代码:

外部变量:(用extern声明外部变量:一个文件内的全局变量)

#include <stdio.h>
int max(int,int);
int main( )
{extern int a,b; //对全局变量a,b作提前引用声明printf("%d\n", max(a,b));return 0;
}
int a=15,b=-7;   //定义全局变量a,b
int max(int x,int y)
{int z;z=x>y?x:y;return z;
}

静态变量和自动变量:

#include <stdio.h>
int f(int a)
{auto int b=0;static int c=3;b=b+1;c=c+1;return a+b+c;
}
int main( )
{int a=2,i;for(i=0; i<3; i++)printf("%d ", f(a));printf("\n");return 0;
}

静态变量运用:(程序计数器)

#include <stdio.h>
int count_calls()
{static int ctr=0;return ++ctr;
}
int main( )
{int i;for(i=0; i<10; i++)printf("%d\n", count_calls());return 0;
}

关于静态变量初始化:

#include<stdio.h>
void add()
{int x=0;static int y=0;printf("%d,%d\n",x,y);  //0,0,0,2,注意第二次虽然在此命名静态变量y=0,但是上一次执行完的y不会被重新初始化!x++;y=y+2;
}int main()
{int i;for(i=0; i<2; i++)add();return 0;
}

执行情况:

执行1:

执行 2:

执行3:

知识总结:

由此引出4种存储类别变量

自动变量:

寄存器变量:

寄存器是cpu的重要组成部分,英语叫cache,是一个运算速率快但是存储空间小的内存。起作用主要用于高速数据缓存交换到运算器和ROM中

因此,寄存器变量用于设置一段程序中重复大量使用的变量;有利于是程序加速!

外部变量

当变量声明位置不在函数之前的时候,想被之前的函数调用,那就需要用外部变量来声明如下:

静态局部变量:(性质如下)

!!当处于函数里面的变量如果设值为静态局部变量,该变量在函数调用结束后不会内存释放吗,会保留!!!!!

C语言:变量存储类别相关推荐

  1. c语言变量是如何存储,C语言变量存储

    C语言中的变量按照生存周期来区分,可以分为静态存储和动态存储. 一.静态存储 静态存储是在程序运行过程中分配固定的存储空间.静态存储区中存放了整个程序运行过程中的都存在的变量,如全局变量,因此静态存储 ...

  2. C语言中变量存储类别——自动变量,寄存器变量,静态外部链接;

    c提供了多种不同模型或存储类别在内存中存储数据. 作用域: 作用域描述程序中可访问标识符的区域. 作用域描述了程序中可以访问一个标识符的一个或多个区域.即变量的可见性. 一个变量的作用域可以是代码块作 ...

  3. 动态内存分配及变量存储类别(第二部分)

    5. C语言变量的存储类别和生存期 我们知道,变量是有数据类型的,用以说明它占用多大的内存空间,可以进行什么样的操作. 除了数据类型,变量还有一个属性,称为"存储类别".存储类别就 ...

  4. C语言复习-存储类别,链接和内存管理

    存储类 从硬件方面来看,被存储的每个值都占一定的物理内存.C语言把这一块内存称为对象.对象可以存储一个或多个值.一个对象可能并未存储到实际的值,但是它在存储适当的值时一定具有相应的大小. 从软件方面来 ...

  5. C语言 | 变量的存储方式

    C语言动态存储方式与静态存储方式 静态存储方式是指在程序运行期间由系统分配固定的存储空间的方式:动态存储方式是在程序运行期间根据需要进行动态的分配存储空间的方式. 内存中的供用户使用的存储空间可以分为 ...

  6. C语言变量的存储方式和生存期

    一.动态存储方式与静态存储方式 从变量的作用域进行区分,变量可分为全局变量和局部变量. 从变量的生存期进行区分,变量可分为静态存储方式和动态存储方式. 静态存储方式:在程序运行期间由系统分配固定的存储 ...

  7. C++变量作用域、生存期、存储类别

    写C.C++代码的小伙伴一定在头疼变量的作用域.生存期.存储类别问题.什么静态.外部.寄存器.局部.全局搞得一头雾水.今天咱们就来梳理一下他们的变态关系(什么不得了的事情???) 1.变量的作用域 说 ...

  8. c语言作用域有哪两种变量,2017年计算机二级C语言字考点归纳:变量的存储类别、作用域及生存期...

    7.7 变量的存储类别.作用域及生存期 1.变量的存储类别 在C语言中,有两类存储类别:自动类别及静态类别. 有4个与两种存储类别有关的说明符:auto(自动).register(寄存器).stati ...

  9. 存储过程debug值not a variable_C语言变量的存储类别

    在程序中经常会使用到变量,在C程序中可以选择变量的不同存储形式,其存储类别分为静态存储和动态存储.可以通过存储类别修饰符来告诉编译器要处理什么样的类型变量,具体主要有自动(auto).静态(stati ...

最新文章

  1. 10亿级数据规模的半监督图像分类模型,Imagenet测试精度高达81.2% | 技术头条...
  2. web前端(13)—— 了解JavaScript,JavaScript的引入方式
  3. visual studio c/c++变量内存地址里的cc是什么意思?
  4. Team Foundation Server安装指南
  5. android编译非静态内部类,Android 非静态内部类/匿名类引起的内存泄漏
  6. visual studio odbc数据源设计器_NEW!WinForm界面开发设计时正式支持.NET 5
  7. K8S 核心组件 kubelet 与 kube-proxy 分析
  8. undefined reference to `sqlite3_column_table_name‘
  9. 传统高斯模糊与优化算法(附完整C++代码)
  10. 《JS权威指南学习总结--3.4null和undefined》
  11. 一周第二次课(12月12日)
  12. 时间管理的六项基本原则
  13. C#:实现读取网卡信息
  14. Flask框架的学习——04—(模版继承、静态文件的配置、豆瓣APP界面案例实现)
  15. Web 攻防之业务安全:账号安全案例总结.
  16. Signal Processing Toolbox
  17. 磁盘管理命令df和du的区别,以及du -sh ./与du -sh ./*区别
  18. 晶体三极管的三个工作区域及温度对特性的影响
  19. 【山外笔记-工具框架】Iperf3网络性能测试工具详解教程
  20. 一劳永逸 让你与IE弹出窗口彻底告别

热门文章

  1. 电脑关闭所有应用的快捷键
  2. Python实现--使用微信定时每天和女友发送定制消息(附代码教程)
  3. matlab ode45使用,ODE45函数的使用——翻译
  4. Miles per gallon to kilometers per liter
  5. 计算机网络有三大功能 数据通信,计算机网络的三大功能
  6. 科技圈的“三座大山”正在崩塌中。。。
  7. 《拆掉思维里的墙》读书笔记
  8. 前端工程化配置-husky + eslint + lint-staged
  9. yii mysql gii_yii框架之gii的使用
  10. 自然语言处理(NLP):10 基于WordAVGModel 增加Attention机制情感分析