本文通过下面例子进行全局变量、静态变量、局部变量分析。

#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;
}

运行结果:

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.

有以上可以总结出,各种变量使用大的规则是在可用范围内的变量就近使用。