C语言函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 13:06:12
int a=2,i;
for(i+0;i<3;i++)
printf("%d",func(a));
{
func(int a)
{
int b=0;
static c=3;
b++;c++;
return(a+b+c);
}
答案为什么不是 777?

#include<stdio.h>

int func(int a);

void main()
{
int a=2,i;

for(i=0;i<3;i++)
printf("%d",func(a));

getch();
}

int func(int a)
{
int b=0;
static c=3;
/*第一次调用c=3;,第一次初始化,以后就使用上次调用后的值*/
/*第二次调用c=4;*/
/*第三次调用c=5;*/

b++;
c++;

return(a+b+c);
}

c语言的static变量是在程序加载的时候就为之分配内存的,一直到程序结束,而不像普通变量那样函数执行一次分配一次.


变量c是静态变量
在整个程序执行的过程中始终存在

同意楼上的解释!
答案是:579 吗?