帮忙分析一下这个程序:)
#include <stdio.h>int ran(void)
{
static int see=1234,n;
printf("(see=%4d)",see);
see=(see+25543)%7415;
n=(see%1000)/10;
return (n);
}
int rand(void)
{
int see=1234,n;
printf("(see=%5d)",see);
see=(see+25543)%7415;
n=(see%1000)/10;
return (n);
}
void main(void)
{
int i,j;
for (i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%3d",ran());
printf("\n");
}
for (i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%3d",rand());
printf("\n");
}
}
----------------解决方案--------------------------------------------------------
这个程序用来说明函数内部的 静态变量 的影响.
----------------解决方案--------------------------------------------------------
这个我知道,能不能具体点,我对它的输出有点疑问,详细点点就好
----------------解决方案--------------------------------------------------------
如#2所说,第一个函数中static int see,static定义静态变量,则see的值不可改;第二个的see值可改。所以输出会不一样。
----------------解决方案--------------------------------------------------------
也就是static在函数内部声明的变量,只初始化一次,下次调用该函数时,
static变量保留上一次的值.
----------------解决方案--------------------------------------------------------