栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第一阶段 C语言基础与入门7

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第一阶段 C语言基础与入门7

变量生存周期和静态局部变量

1.变量生存周期

  变量是保存变化数据的工作单元,计算机用内存单元来对应实现。一旦在程序中定义变量,计算机在执行过程中就会根据变量类型分配相应的内存单元供变量保存数据。

  就一般程序而言,计算机都是从主函数开始运行的,使得main()函数中所有的局部变量,一开始就在内存数据区中分配了存储单元。而其他函数在被调用之前,其局部变量并未分配存储单元,只有当函数被调用是,其形参和局部变量才被分配相应存储单元;一旦函数调用结束返回主调函数,在函数中定义的所有形参和局部变量将不复存在,相应的存储单元由系统收回。

  自动变量定义形式是:

          auto类型名 变量表;

  例如:

         auto int x,y;

     在自动变量定义时,auto可以省略,其形式与以前定义的普通变量完全相同。也就是说前面定义的局部变量都是自动变量。

2.变量存储的内存分布

  自动变量和全局变量的生存周期不同。为了便于计算机存储管理,C语言把保存所有变量的数据区分成动态存储区和静态存储区

动态存储区:使用堆栈来管理的,适合函数动态分配与回收存储单元。

静态存储区:相对固定,管理较简单,它用于存放全局变量和静态变量。

3.静态变量

  在静态存储区中,除了全局变量外,还有一种特殊的局部变量———静态局部变量。它存放在静态存储区,不会像普通局部变量那样因为函数调用结束而被系统回收,它的生存周期会持续到程序结束。由于存储单元被保留,一旦含有静态局部变量的函数被再次调用,则静态局部变量会被重新激活,上一次函数调用后的值仍然保存着,可供本次调用继续使用。

  静态变量定义格式:

       static 类型名 变量名

输入正整数n,输出1!~n!的值。要求定义并调用含静态变量的函数fact-s(n)计算n!。

 本函数使用了静态变量f保存上次函数调用时,计算的到的(n-1)!值,再乘上n实现n!。若静态变量不赋值,系统将自动赋0。

  

整形数据的存储:

1.整形数据的存储;

  采用二进制。最左边为符号位,0为正,1为负。正数的原码、补码、反码相同。负数反码除符号位,其余与原码相反;补码为反码加1。

2.实型数据的存储:

存储实型数据时,分为符号位、阶码和尾数三部分

3.字符型数据的存储:

每个字符在内存中占用一个字节,存储它的ASCII码。如‘A’的ASCII码为65。

基本数据类型:

3种基本数据类型是整形、字符型和实型。

 ASCII字符集:

 

 转义字符:

 最后两行采用ASCII码(八进制整数、十六进制整数)表示一个字符。例如102表示ASCII码是八进制数102的字符,即字母‘B’;x41表示ASCII码是十六进制数41的字符,即‘A’。

实型常量:

  实型常量即常说的实数,又称为浮点数,都是双精度浮点型。

  1.浮点表示法:

   实数由正号、负号、阿拉伯数字0~9和小数点组成,必须有小数点,并且小数点的前后至少一边要有数字。实数的浮点表示法又称实数的指数形式。

  2.科学计数法:

实数由正号、负号、数字和字母e或E组成,e是指数的标志,在e之前要有数据,e之后的指数只能是整数。实数的科学计数法又称实数的指数形式。

整型数据的输入和输出:

 

实型数据的输入和输出:

  

 数组:

  

  该程序种定义一个整型数组a后,在内存中开辟了10个连续的单元,用于存放数组a的10个元素   a[0]~a[9]的值。。

  在程序中使用数组,可以让一批相同类型的变量使用同一个数组变量名,用下标来相互区分。优点是表达简洁,可读性好,便于使用循环结构。

 练习1:

 练习2:

 练习3:

注:一直未注意a的取值情况,导致了一直报错。以后注意! 

本周学习到此为止,

如有错误,欢迎指出。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384471.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号