C语言 变量的存储属性和预编译命令.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.1变量的存储属性 存储位置:主存、寄存器 生存期:永久生存期、动态生存期 永久生存期:为程序执行的整个过程,在该过程中占有固定的存储空间。 动态生存期:只在程序执行的某一段时间内存在。 变量的作用域:局部变量和全局变量 局部变量: 在一个函数内部定义的变量是内部变量,它只在本函数范围内有效, 在复合语句中定义的变量只在本复合语句中有效。 全局变量: 在函数之外定义的变量称外部变量,外部变量是全局变量(全程变量)。它的有效范围为从定义变量的位置开始到本源文件结束 局部变量和全局变量 ——从变量的作用域角度分类 例2. void main ( ) {int x=7 , y=3 ; f( ) ; printf(%d,%d\n , x , y ); } f( ) { int x=8, y=5 ; if ( xy ) { int t ; t=x ; x=y ; y= t; } printf (%d,%d\n , x , y );} (一)局部变量:形参、函数体中定义的变量 作用范围:某个局部 也称为内部变量,在函数内定义,作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。 1)主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。 2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。 例如: int f1(int a) /*函数f1*/ {int b,c; …… } int f2(int x) /*函数f2*/ {int y,z; …… } main() {int m,n; …… } 3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。如在前例中,形参和实参的变量名都为m,n,是完全允许的。 例21: main() { int i=2,j=3,k; k=i+j; { int k=8; printf(%d\n,k); } printf(%d\n,k); } 4)在复合语句中也可定义变量,其作用域只在复合语句范围内。例如: main() { int s,a; …… { int b; s=a+b; …… } …… } (二)全局变量:在函数之外定义的变量 作用范围:从定义点到文件结束 也称为外部变量,在函数外部定义的变量,作用域是整个源程序。如果在某个函数中使用后面说明的全局变量,应用说明符extern声明后才能使用,但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。 例如: int a,b; void f1() { …… } float x,y; int fz() { …… } main() { …… } 例22.? int p=1,q=5; float f1 ( a ) int a; { extern c1 ……} f2 ( int k ) {……} char c1,c2; main( ) {……} void f3( ) { double s;} 若同一源文件中、外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。 例24. ?int a=3 , b=5; main ( ) {int a=1000; f( ); printf (main:%d,%\n , a , b ) ;} f( ) { printf (f :%d,%\n , a , b ) ;} 例25. 外部变量与局部变量同名。 int a=3,b=5; max(int a,int b) {int c; c=ab?a:b; return(c); } main() {int

文档评论(0)

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

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

1亿VIP精品文档

相关文档