- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.7.3 静态变量 #include stdio.h main() { void increment(void); //函数说明 increment(); increment(); increment(); } void increment(void) //函数定义 { auto int x=0; //每次进入函数都重新定义变量x并赋初值0 x++; printf(%d\n,x); } 5.7.3 静态变量 #include stdio.h main() { void increment(void); increment(); increment(); increment(); } void increment(void) { static int x=0; x++; printf(%d\n,x); } 5.7.4 外部变量 外部变量的类型说明符为extern。在函数外定义的变量若没有用 static说明,则是外部变量。外部变量只能隐式定义为extern类别,不能显式定义。 int c; static int a; main( ) { float x,y; … } char s; f( ) { static int b=1; … } 变量c是外部变量,a是全局静态变量,而x和y是自动变量,b是局部静态变量。 5.7.4 外部变量 外部变量的几个特点: ①外部变量和全局变量是对同一类变量的两种不同角度的提法。全局变量是从它的作用域提出的,外部变量从它的存储方式提出的,表示了它的生存期。 ②编译时,将外部变量分配在静态存储区,程序运行结束释放该单元。 ③构造类型的外部变量若定义时未赋初值,在编译时,系统自动赋初值为0。 ④外部变量的生存期是整个程序的执行期间。 ⑤当一个源程序由若干个源文件组成时,在一个源文件中定义的外部变量加以说明后在其它的源文件中也有效。 5.7.4 外部变量 需注意的是: ①外部变量声明用关键字extern,而外部变量的定义不能用extern,只能隐式定义。 ②定义外部变量时,系统要给变量分配存储空间,而对外部变量声明时,系统不分配存储空间,只是让编译系统知道该变量是一个已经定义过的外部变量,与函数声明的作用类似。 ③C程序可以是由一个或多个源程序文件组成,如果在由多个源程序文件程序中定义了外部变量,那么在使用时需对外部变量加以说明。 5.7.5 寄存器变量 寄存器变量存放在CPU的寄存器中,使用时不需要访问内存,而直接从寄存器中读写,这样可提高效率。对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量。 对寄存器变量还要说明以下几点: ①只有局部自动变量和形式参数才可以定义为寄存器变量。 ②只有某些数据类型的变量可放在寄存器中,例如整型、字符型等。取地址运算符不能作用于寄存器变量。 ③即使能真正使用寄存器变量的机器,由于CPU 中寄存器的个数是有限的,因此使用寄存器变量的个数也是有限的。 #include stdio.h main( ) { long int sum=0; register int i; for (i=1; i=1000; i++) sum+=i; printf(sum=%ld\n ,sum); } 5.5.2调用与被调用函数间的地址传递 #include stdio.h void sort(int b[ ],int n); void printarr(int b[ ]); main( ) { int a[10] = {11,52,23,77,48,64,59, 32,93,38}; printf(Before sort:\n); printarr(a); sort(a,10); printf(After sort:\n); printarr(a); } void printarr(int b[10]) { int i; for (i=0; i10; i++) printf(%5d,b[i]); printf(\n); } 5.5.2调用与被调用函数间的地址传递 void sort(int b[ ], int n) { int i,j,t; for (i=1; in; i++) for (j=0; jn-i; j++ ) if (b[j]b[j+1]) {t=b[j];b[j]=b[j+1];b[j+1]=t; } } 5.5.2调用与被调用函数间的地址传递 5.5.2调
您可能关注的文档
- 《aix系统科学应用基础》shellbasics.ppt
- 《aix系统科学应用基础》softwareinstall.ppt
- 《c语言程序创新设计基础》构造数据类型.ppt
- “产品化”渠道运营的培训材料.ppt
- “新火燎园”——数字化时代下高校新媒体发展现状研究.ppt
- 《c语言程序创新设计基础》数组.ppt
- 《cet教学资料》新四年级课件.ppt
- 《c语言程序创新设计基础》文件.ppt
- 《c语言程序创新设计基础》指针.ppt
- 《c和winform基础教学资料》网吧计费管理系统.ppt
- DB44_T+2756-2025碳达峰碳中和培训管理规范.docx
- DB44_T+2765-2025红树林主要病虫害综合防控技术规程.docx
- DB44_T+2757-2025五指毛桃林下栽培技术规程.docx
- DB44_T+2760-2025鳄蜥饲养技术规程.docx
- DB44_T+2754-2025中医医院老年病科病房适老化服务规范.docx
- 中西医临床患者报告结局测量工具选择系统的工作流规范.docx
- DB44_T+2767-2025河口海湾总氮、总磷水质评价指南.docx
- 中医药科技成果转化评价技术规范.docx
- DB44_T+2750-2025农村供水工程数字化建设技术导则.docx
- DB44_T+2769-2025金属矿山生态修复技术规范.docx
最近下载
- 慢性支气管炎的护理查房.pptx VIP
- 工业互联网产业联盟-2018年工业无线电磁环境白皮书——汽车制造领域.pdf VIP
- 两个孩子的离婚协议书范本.docx VIP
- 成本与管理会计第四版孙茂竹课后习题答案解析.pdf
- 两个孩子离婚协议书范本6篇.docx VIP
- 广东省惠州市惠阳区2024-2025学年七年级上学期期末道德与法治试题.docx VIP
- 2025年江苏省淮安市高中学业水平合格性考试考前模拟历史试题(含答案).pdf VIP
- 让情绪有着落-2025年情绪营销8大趋势洞察报告.pdf
- 广东省惠州市博罗县2023-2024学年七年级上学期期末考试历史试题(含答案).docx VIP
- 两个孩子的离婚协议书范例6篇.docx VIP
原创力文档


文档评论(0)