[cpp]
/*
* exercise03.c
*
* Created on: 2012-11-5
* Author: xiaobin
*/
#include
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;
}
计算结果:
[plain]
8
10
12
14
16
auto和static的区别:
auto对于一个程序块来说是局部的,在退出程序块时该对象将消失。如果没有使用auto保留字,或者如果使用了auto保留字,则程序块中的声明生成的都是自动存储类对象。
static可以是某个程序块的局部对象,也可以是所有程序块的外部对象。无论是哪一种情况,在退出和在进入函数或程序块时其值将保持不变。