您的位置:首页 > 大数据 > 人工智能

staitc用于函数内部和函数外部的不同

2015-10-26 23:01 267 查看
只有比别人更早、更勤奋地努力,才能尝到成功的滋味

1、当static用于函数内部时,例如static int i;当函数执行完后,i不会被释放,下一次调用函数时,i的值会保留上次的值继续使用。

程序如下:

#include <stdio.h>
#include <stdlib.h>
void func()
{
static int i=0;
int j=0;
i++;
j++;
printf("i: %d, j: %d \n",i,j);
}

int main()
{
func();
func();

return 0;
}

结果:



static定义的静态变量在每一次的函数调用中,只有第一次进行了初始化,因为从程序的输出结果为3,4,6可以看出,

第一次fun(0)时,执行了static int value =3;然后 value+=i;得value=3;当运行fun(1)的时候,程序跳过static int value =3;

执行 value+=i;得value=3+1;所以value=4;

#include <stdio.h>
#include <stdlib.h>

void fun(int i)
{
static int value =3;
value+=i;
printf("%d\n",value);
}
int main()
{
fun(0);
fun(1);
fun(2);

return 0;
}


2、当statc用于子函数外部时

static int i;

int j;

在这里,i与j都是全局变量,二者的区别是,j可以被别的文件使用,i只能在本文件中使用,这是static对全局变量的作用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c