#include <stdio.h>
void doubleValue()
{
static int staticNum=5;
staticNum=staticNum*2;
printf("%d\n",staticNum);//输出乘2的结果
}
int main()
{
printf("第一次调用:");
doubleValue(); //调用doubleValue函数
printf("第二次调用:");
doubleValue(); //调用doubleValue函数
return 0;
}
一、功能概述
这段代码定义了一个名为doubleValue
的函数,在main
函数中两次调用该函数。doubleValue
函数的作用是将一个静态局部变量staticNum
的值乘以 2 并输出结果。
二、代码详解
-
doubleValue
函数:static int staticNum=5;
:定义了一个静态局部变量staticNum
并初始化为 5。静态局部变量在程序执行期间只初始化一次,并且在函数调用之间保留其值。staticNum=staticNum*2;
:将staticNum
的值乘以 2。printf("%d\n",staticNum);
:输出staticNum
的当前值。
-
main
函数:printf("第一次调用:");
:输出提示信息。doubleValue();
:第一次调用doubleValue
函数。printf("第二次调用:");
:再次输出提示信息。doubleValue();
:第二次调用doubleValue
函数。
三、执行结果
当程序运行时,第一次调用doubleValue
函数,输出 10(5×2)。第二次调用时,由于静态局部变量保留了上次调用后的值,所以staticNum
的值为 10,再次乘以 2 后输出 20。