C/C++中的static关键字的易错点

来源:互联网 发布:webrtc 源码介绍 编辑:程序博客网 时间:2024/06/05 20:48

分析代码

#include <stdio.h>void fun(int i){    static int value = i++;    printf("%d\n",value);}int main(){    fun(0);    fun(1);    fun(2);    fun(100);    return 0;}

程序输出为:
0
0
0
0
是因为value是静态类型,只会定义一次。也就是说,不管调用fun()这个函数多少次,static int value = i++这个定义语句只会在第一次调用的时候执行,由于第一次执行的时候i = 0,所以,value也就被初始化成0了。以后调用fun()函数都不会在执行这条语句。

原创粉丝点击