05. 计算下面程序结果,并说明auto和static的区别
-
/*
-
* exercise03.c
-
*
-
* Created on: 2012-11-5
-
* Author: xiaobin
-
*/
-
#include <stdio.h>
-
-
int sum(int a)
-
{
-
auto int c = 0;
-
static int b = 3;
-
c += 1;
-
b += 2;
-
-
return (a + b + c);
-
}
-
-
int main(int argc, char* argv[])
-
{
-
int i;
-
int a = 2;
-
-
for (i = 0; i < 5; i++) {
-
printf("%d\n", sum(a));
-
}
-
return 0;
-
}
计算结果:
auto和static的区别:
auto对于一个程序块来说是局部的,在退出程序块时该对象将消失。如果没有使用auto保留字,或者如果使用了auto保留字,则程序块中的声明生成的都是自动存储类对象。
static可以是某个程序块的局部对象,也可以是所有程序块的外部对象。无论是哪一种情况,在退出和在进入函数或程序块时其值将保持不变。
阅读(894) | 评论(0) | 转发(0) |