经典C语言 第六章 函数.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
经典C语言 第六章 函数

【例6-26】求high以内的10个最大素数之和。 int funsu(int high) { int sum=0,n=0,i,yes; while(high=2n10) { yes=1; for(i=2;i=high/2;i++) if(high%i==0) { yes=0;break;} if(yes) { n++; printf(%d--%d\n,n,high); sum+=high; } high--; } return sum; } main() { int h; printf(high=); scanf(%d,h); printf(sum=%d\n,funsu(h)); } 〖运行结果〗: high=100↙ 1----97 2----89 3----83 4----79 5----73 6----71 7----67 8----61 9----59 10----53 sum=732 6.6.3 全局变量的存储方式 (1) 全局变量一般用外部存储方式存储, 用保留字extern加以定义。此时, 变量的作用域是构成整个程序的所有程序文件, 也就是定义的外部变量可供其它程序文件使用。  例如, 程序由两个程序文件file1.c与file2.c组成。 /*file1.c*/ extern int a; /*定义extern存储方式变量a*/ main( ) {int pow( );  int n;  int p; scanf(″%d″, n);  p=pow(n);  printf(″p=%d\n″, p);  } /*file2.c*/ extern int a; /*申明本文件中使用的是已定义的外部变量a*/ int pow(x) int x;  {int i, t=1;  for(i=1; i=x; i++) t*=i;  return(t);  } 2) 如果希望全局变量仅限于本程序文件使用, 而其它程序文件中不能引用, 这时必须将其存储方式定义为静态存储方式, 用保留字static加以定义。此时称为静态外部变量。  例如, 在上例文件file1.c中, 如果作这样的定义:  static int a;  则变量a的作用域被缩小至本程序文件file1.c, 文件file2.c中不能引用。 (3) 全局变量的缺省存储方式是外部存储方式。  前面章节中的程序没有见到变量的存储类别定义, 实际上采用变量的缺省存储方式。对局部变量采用auto方式, 对全局变量采用extern方式。 1. 变量定义的一般形式 存储类别 数据类型 变量表; 2. 变量定义的作用 ① 规定了变量的取值范围。  ② 规定了变量进行的运行操作。  ③ 规定了变量的作用域。  ④ 规定了变量的存储方式。  ⑤ 规定了变量占用的存储空间。 3. 局部变量和全局变量 局部变量:  ① 自动变量, 即动态局部变量(离开函数, 值就消失). ② 静态局部变量(离开函数, 值仍保留)。  ③ 寄存器变量(离开函数, 值就消失)。 ④ 形式参数可以定义为自动变量或寄存器变量。 全局变量:  ① 静态外部变量(只限本程序文件使用)。 ② 外部变量(即非静态的外部变量, 允许其它程序文件引用)。 4. 动态存储和静态存储 动态存储:  ① 自动变量(函数内有效)。 ② 寄存器变量(函数内有效)。 ③ 形式参数。 静态存储:  ① 静态局部变量(函数内有效)。 ② 静态外部变量(本程序文件内有效)。 ③ 外部变量(整个程序可引用)。 5. 静态存储区和动态存储区 从变量值存放的位置可将变量存储区分为静态存储区和动态存储区: 内存中静态存储区:  ① 静态局部变量。 ② 静态外部变量。 ③ 外部变量(可被同一程序其它文件引用)。 内存中动态存储区: 自动变量和形式参数。 例 6-17 仔细阅读程序, 注意变量的作用域#, 存储类别, 分析程序的运行结果。 /*程序 7-17, 变量的作用域、 存储类别*/ void f1(x, y) {auto int i;  static int j; /*调用完, j值保留*/ printf(″i=%5d, j=%5d\n″,

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档