全局变量 静态变量 局部变量分析
2016-05-29 21:35
381 查看
本文通过下面例子进行全局变量、静态变量、局部变量分析。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/74/C3/wKioL1YoprjDiCayAACRWysc9Yg827.jpg" title="SH2{DIOKJ7LHQ5[TI1CIWA6.png" alt="wKioL1YoprjDiCayAACRWysc9Yg827.jpg" />
代码分析:
定义全局变量count=3;进入主函数,定义局部变量count=2,进入for语句:
第一次循环:i=0,sum=0,i小于局部变量count=2,定义静态变量count=4,并使之加1;i%2==0,进入if语句,全局变量count++=4,sum=sum+count(全局变量)=0+4=4;sum=sum+count(静态变量)=4+5=9;
i=i+2=2,count(局部变量)++=3,i<count,进入第二次for循环:
第二次循环:静态变量count++=6;i%2==0,进入if语句,全局变量count++=5,sum=sum+count(全局变量)=9+5=14;sum=sum+count(静态变量)=14+6=20;
i=i+2=4,count(局部变量)++=4,i==count,跳出循环。
输出count(局部变量)=4,sum=20.
有以上可以总结出,各种变量使用大的规则是在可用范围内的变量就近使用。
#include <stdio.h> #include <stdlib.h> int count = 3;/*全局变量count*/ int main() { int i, sum, count = 2; /*局部变量count*/ for (i = 0, sum = 0; i < count; i += 2, count++) { static int count = 4;/*静态变量count*/ count++; if (i % 2 == 0) { extern int count; /*全局变量count*/ count++; sum += count; } sum += count; } printf("count = %d\nsum = %d\n", count, sum); system("pause"); return 0; }运行结果:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/74/C3/wKioL1YoprjDiCayAACRWysc9Yg827.jpg" title="SH2{DIOKJ7LHQ5[TI1CIWA6.png" alt="wKioL1YoprjDiCayAACRWysc9Yg827.jpg" />
代码分析:
定义全局变量count=3;进入主函数,定义局部变量count=2,进入for语句:
第一次循环:i=0,sum=0,i小于局部变量count=2,定义静态变量count=4,并使之加1;i%2==0,进入if语句,全局变量count++=4,sum=sum+count(全局变量)=0+4=4;sum=sum+count(静态变量)=4+5=9;
i=i+2=2,count(局部变量)++=3,i<count,进入第二次for循环:
第二次循环:静态变量count++=6;i%2==0,进入if语句,全局变量count++=5,sum=sum+count(全局变量)=9+5=14;sum=sum+count(静态变量)=14+6=20;
i=i+2=4,count(局部变量)++=4,i==count,跳出循环。
输出count(局部变量)=4,sum=20.
有以上可以总结出,各种变量使用大的规则是在可用范围内的变量就近使用。
相关文章推荐
- 单链表的各种操作
- 替换字符串中的空格
- 一组数中,只有两个数只出现了奇数次,其他所有数都是成对出现的,请找出那两个数
- 冒泡排序函数,可以给任意类型的数据排序,比如整形数组,字符数组,字符串数组等
- 快速排序函数的比较函数
- 二叉树 的先序 中序、后序遍历、层次遍历以及树状打印等操作
- C语言利用结构体实现一个通讯录
- C语言的注释与C++注释的转换
- 两个链表的合并
- 单链表的操作
- 单继承与多继承中的虚函数表和虚函数指针
- C++虚继承中的对象内存布局
- 大道至简阅读笔记01
- shell(十一)切割文件
- [DP] BZOJ 1270 [BeijingWc2008]雷涛的小猫
- HttpClient get请求在HttpResponse中无法获得Location的问题
- 循环
- 天梯匹配系统 - 简单实现
- [平衡树动态维护凸包] BZOJ 2300 [HAOI2011]防线修建
- hdu 4607(树的直径)