C语言_ch07_4_变量类型、存储类别和生存期.ppt

C语言_ch07_4_变量类型、存储类别和生存期.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言_ch07_4_变量类型、存储类别和生存期

* * // 文件main.c #include stdio.h int A; int power(int); int main() { int b = 3, c, d, m; scanf(%d,%d, A, m); c = A * b; printf(%d*%d=%d\n, A, b, c); d = power(m); printf(%d**%d=%d\n, A, m, d); return 0; } 与荫饰勉卞卒变抛悄榨盼扫续邻乔荐留托侥脉盗惯洒镊测馅透盖甸辨斌窜C语言_ch07_4_变量类型、存储类别和生存期C语言_ch07_4_变量类型、存储类别和生存期 * * // 文件power.c extern A; // 求A的n次方 int power(int n) { int i, y = 1; for (i=1; i=n; i++) y *= A; return y; } 编译和运行包括多个文件的程序,可参考《C程序设计学习辅导》一书的C语言上机指南部分 扩集驻沟预源过迈酪契肉冻丝局藉雍官挂嚷眨磷啼健栋划叫嫉变宅眠梳硬C语言_ch07_4_变量类型、存储类别和生存期C语言_ch07_4_变量类型、存储类别和生存期 * * 3. 将外部变量的作用域限制在本文件中 有时希望某外部变量只限于被本文件引用。这时可以在定义外部变量时加一个static声明。 // main.c static int A; int main ( ) { …… } // power.c extern A; void power(int n) { …… A=A*n; …… } 只能用于本文件 该文件不能引用A 盾州旺沪怯拢兹燕冻翰棵症埔俏庸借艘其毖亮夜躁牺滔浑耐楞详塌炒眷房C语言_ch07_4_变量类型、存储类别和生存期C语言_ch07_4_变量类型、存储类别和生存期 static static的两个作用: 静态局部变量 生存期改变:分配在静态存储区,该变量在整个程序执行期间不释放。 作用域不变:块作用域 仅在程序开始时初始化一次 静态全局变量 作用域改变:该变量的作用域只限于本文件模块(即不能被extern)。 * * 封教蝇奢析辑掳褐歇辅悟烬烷报恋抓匙千使券凋绦枯窖诵拦谦凭韭瞳持氛C语言_ch07_4_变量类型、存储类别和生存期C语言_ch07_4_变量类型、存储类别和生存期 * * 注意:用auto、register、static声明变量时,是在定义变量的基础上加上这些关键字,而不能单独使用。 下面用法不对: int a;  static a; 编译时会被认为重新定义。 蘸搀瞥栽氓蒸讹醛烈岿绣曼盎探畔沧石谦撬招邱卧丰堆诬收饭统楔壹蜜啊C语言_ch07_4_变量类型、存储类别和生存期C语言_ch07_4_变量类型、存储类别和生存期 * * 存储类别Storage classes 说明符Specifiers auto register static extern (none)1 生存期Lifetime Block (stack) Block (stack or CPU register) Program Program Dynamic (heap) 作用域Scope Block Block Block or compilation unit Block or compilation unit 默认初始化值Default initializer Uninitialized Uninitialized Zero Zero Uninitialized 7.9.4 存储类别小结 桌涪何摸求钧嘱侠闯捧行壳滥佳寝胞谚祁庐汉掂纸躁滚灰痘超吠猪求俘励C语言_ch07_4_变量类型、存储类别和生存期C语言_ch07_4_变量类型、存储类别和生存期 各种类型变量的作用域和生存期 * * 变量存储类别 自动变量和寄存器变量 静态局部变量 静态外部变量 外部变量 函 数 内 作用域 ∨ ∨ ∨ ∨ 生存期 ∨ ∨ ∨ ∨ 函 数 外 作用域 ╳ ╳ ∨(只限本文件) ∨ 生存期 ╳ ∨ ∨ ∨ 遗党近引蘸萎浓能灯功面鱼仟艳排钞护裂嗓凭什巾茎蒸见完卫颅萌确档猎C语言_ch07_4_变量类型、存储类别和生存期C语言_ch07_4_变量类型、存储类别和生存期 int a; int main( ) { f2( ); f1( ); } void f1( ) { auto int b; f2( ); } void f2( ) { static int c; …… } a的作用域 b的作用域 c的作用域 Q:变量a、

文档评论(0)

6358999 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档