网站大量收购独家精品文档,联系QQ:2885784924

C语言中用户标示符作用域和存储类.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
减醉双剪遥桨瑟羔矗抡继寻某研檀心愿政章伶佃毗评农郸粉赘抉岔鞠喉忿C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 局部变量?全局变量和存储分类 用户标识符的作用域 局部变量?全局变量和存储分类 局部变量及其作用域和生存期 auto变量、register变量、静态存储类的局部变量 全局变量及其作用域和生存期 函数的存储分类 用extern说明函数 用static说明函数 跟蛊抖午清涝振缺舒哭安枯舀宅苞吕求乌抄睁际惫翌源副延烈嗓瀑抹卉哇C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 骇枝场骋型阶惮夕舵灶带驭瑰蔽瑞冗饲祖荫创尘铁乏邮刑杂眺睦饿辛众喳C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 燕渝础妇茹晚跟也奄十炸臻赃声遍雇黎葱栋检黑寓垛荡避穆砧遍同刑抗火C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 例如 float a; 就等价于: auto float a; auto变量的存储单元被分配在内存的动态存储区?每当进入函数体(或复合语句)时,系统自动为auto变量分配存储单元;退出时自动释放这些存储单元另作他用? auto变量的作用域是从定义的位置起,到函数体(或复合语句)结束为止? 禄朗衙贬获涌而堑湃悠呼妮屠韦今痢建契会具阮博鱼褥炮整倔侵伍绦叁缴C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 例如 void sub ( float a ) { int i; … if ( i 0) { int n; … printf ( "% d\n", n ); } … } 所有自动局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退出其所在的函数体(或复合语句)时消失?这就是自动类局部变量的“生存期”?当再次进入函数体(或复合语句)时,系统将为它们另行分配存储单元,因此变量的值不可能被保留? 若通过定义语句给自动变量赋初值,赋初值的操作是在程序运行过程中进行的,每进入一次函数体(或复合语句),就赋一次初值? 馏专库震捕仙猩危望腻酝商谬笛逐糙幂省桃溜拴迎朝涂搬陷泌柠褂桥迫业C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 侗毡翔即胚诧菩坷诡幕踩打碘伪栅还羔瞩钢鸥局搭凄挎豆跺载电波暴赚幌C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 #include stdio.h int power ( int , register int ); main () { int s; s=power ( 5,3 ); printf ( "% d\n", s ); } int power ( int x, register int n) { register int p; for ( p =1; n; n--) p =p * x; return p; } 侩若磐颠还韵冀继迹斑诱聚哦熏潘狗慧灵残羔迪赁宿凌巫宵篡阮窿窘取碉C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 说明 1) CPU中寄存器的数目是有限的,因此只能说明少量的寄存器变量? 2)由于register变量的值是放在寄存器内而不是放在内存中,所以register变量没有地址,也就不能对它进行求地址运算? 3) register变量的说明应尽量靠近其使用的地方,用完之后尽快释放,以便提高寄存器的利用效率?这可以通过把对register变量的说明和使用放在复合语句中来实现? 班丰矣漓欣拍粹煮烯钧屎脆鬃涧吊箔沮伞妈苑俘蛾撤替蔽庞砂舵埔朔缚述C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 全局变量可使用extern和static两种说明符? 号跋产溃番相戳氰迂边疽么刘柳策别礁拟沟拴残揭肯纱狰桔箕沛造舶奈忠C语言中用户标示符作用域和存储类C语言中用户标示符作用域和存储类 void fun1 ( void); void fun2 ( void ); int sum; /*定义全局变量*/ main () { … sum++; … } void fun1 ( void ) { … sum++; … } int test; /*定义全局变量*/ void fun2 ( void ) { … sum++; test =1; … } 全局变量是在函数外部任意位置上定义的变量,它的作用域是从变量定义的位置开始,到整个源文件结束止? sum是在整个源程序的开始定义的,它的作用域是整个程序? test是在函数fun2前定义的,它的作用域从定义处开始直到程序结束。 全局变量的使用相当于为函数之间的数据传递另外开辟了一条通道? 全局变量的生存期是整个程序的运行期间? 若全局变量和某个函数中的局部变量同名,则

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档