资讯详情

资讯详情

建站行业动态 · 设计趋势 · 数字化升级干货

深入理解C++ static 关键字修饰局部变量

深入理解C++ static 关键字修饰局部变量 如果使用关键字static修饰局部变量num语句static int num 0;只执行一次它的值在每次函数调用的时候都存储在静态存储区内存里不会随着函数countCall()函数调用结束消亡所以每次输出都累加1见如下程序:#include iostream void countCall() { static int num 0; // ① 第一次进入时初始化为0之后这句不再执行 num; // ② 每次调用加1 std::cout 调用次数: num std::endl; } int main() { countCall(); // 输出: 调用次数: 1 countCall(); // 输出: 调用次数: 2 countCall(); // 输出: 调用次数: 3 return 0; }如果把static关键字去掉那么语句int num 0;随函数调用每次都执行所以每次输出都是1见如下程序:#include iostream void countCall() { int num 0; // ① 每次都初始化为0 num; // ② 每次调用加1 std::cout 调用次数: num std::endl; } int main() { countCall(); // 输出: 调用次数: 1 countCall(); // 输出: 调用次数: 1 countCall(); // 输出: 调用次数: 1 return 0; }

相关资讯