本文通过下面例子进行全局变量、静态变量、局部变量分析。
#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