首页 > 其他 > 详细

全局变量-局部变量-静态变量

时间:2019-11-27 09:21:48      阅读:62      评论:0      收藏:0      [点我收藏+]

全局变量和局部变量

定义 在函数内部的 变量叫局部变量(函数的形参也是局部变量)

定义在 所有函数的外面的变量叫全局变量

全局变量在所有函数中均可以使用,局部变量只能在定义它的函数内部使用 (需要引入头文件声明吧,否则怎么知道变量作用域)

静态变量

全局变量都是静态变量 。局部变量定义时如果前面加了“ static ”关键字,则
该变量也成为静态变量

静态变量的存放地址 ,在整个程序运行期间,都是固定不变的

非静态变量 一定是局部变量 地址每次函数调用时都可能不同 在函数的一次
执行期间不变

如果未明确初始化,则静态变量会被自动初始化成全 0( 每个 bit 都是 0 ),局部
非静态变量的值则随机

#include<iostream>
using namespace std;
void Func()
{
    static int n = 4; //静态变量只初始化一次
    cout << n << endl;
    ++n;
}
int main()
{
    Func();
    Func();
    Func();
    return 0;
}

 

静态变量应用 :strtok 的实现

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char str[] = "- this, a sample string, OK.";
    //下面要从 str 逐个抽取出被 " ,.-" 这几个字符分隔的字串
    char *p = strtok(str, " ,.-");
    while (p != NULL)
    {
        cout << p << endl;
        p = strtok(NULL, " ,.-");
        //后续调用 第一个参数必须是 NULL
    }
    return 0;
}

 

全局变量-局部变量-静态变量

原文:https://www.cnblogs.com/focus-z/p/11939541.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!