本文通过下面例子进行全局变量、静态变量、局部变量分析。
#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; }
运行结果:
代码分析:
定义全局变量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.
有以上可以总结出,各种变量使用大的规则是在可用范围内的变量就近使用。
原文地址:http://10740026.blog.51cto.com/10730026/1705292