关闭

C++ 在函数中用static定义的变量的

标签: C++
1321人阅读 评论(0) 收藏 举报
分类:

在C++中,在函数中使用static定义一个变量,该变量最终只会分配一次内存,如果下次继续调用该函数,不会再重新分配内存给变量,而是使用上次分配的内存。

#include<iostream>
using namespace std;


class StaticVer
{
public:
    int num ;
    StaticVer():num(10){}


};

int * staticNum()
{
    static int a = 10;
    return &a;
}

StaticVer * StaticObj()
{
    static StaticVer statv;
    return &statv;
}


int main(void )
{
    for (size_t i = 0; i < 10; i++)
    {
        int *pNum = staticNum();
        StaticVer*pObj = StaticObj();
        cout << "staticNum addr:" << pNum << endl;
        cout << "StaticObj addr:" << pObj << endl;
        cout << "-------------------" << endl;



    }

    getchar();
}

运行这段代码,我们会得到如下结果:

staticNum addr 总是指向地址0094E000
StaticObj addr 总是指向地址0094E2C8

staticNum addr:0094E000
StaticObj addr:0094E2C8

最后程序运行截图
这里写图片描述

0
0
查看评论

成员函数内定义static变量

在成员函数内定义static变量
  • u012317833
  • u012317833
  • 2014-11-11 15:21
  • 1724

C/C++---static函数,static成员函数,static变量,static成员变量 再来理一理

首先说一下内存的五个区: 栈(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值(除static),其操作方式类似于数据结构中的栈。 堆(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆(优先队列)是两回事,分配方式倒是类似于链表。...
  • FreeApe
  • FreeApe
  • 2016-03-25 14:23
  • 1932

c++l类中static成员函数和成员数据变量使用

c++中为了保护类的封装性,提出了static成员来代替全局变量,下面我们来了解一下static成员的使用方法:程序通过vs2008调试成功 例一: #include "stdafx.h" #include #include #include #include #i...
  • wangjiaoyu250
  • wangjiaoyu250
  • 2013-01-27 23:05
  • 2865

C++静态成员变量和静态成员函数使用总结

C++静态成员变量和静态成员函数使用总结: 一.静态成员变量:          类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/priva...
  • fanyun_01
  • fanyun_01
  • 2016-05-16 09:11
  • 8096

c++类中static 类型变量使用

在C++语音中类的静态数据成员在初始化时比较特殊,以为它并不是在类的定义中初始化,而是在类的定义外被初始化。如下示例:#include"iostream" #include"string.h" class test { public: static cha...
  • u012248972
  • u012248972
  • 2016-06-11 20:09
  • 1543

C++之static

&amp;lt;main&amp;gt;    &amp;lt;div style=&quot;display:none;&quot;&amp;gt;      &amp;lt;img src=...
  • baidu_32382133
  • baidu_32382133
  • 2018-02-10 10:27
  • 40

C++类中静态变量和静态方法使用介绍

C++类中静态变量和静态方法使用介绍! 时间:2014-04-19 12:05  浏览:650人 原链接:http://www.ecoviews.cn/net/archives/216.html 静态成员的提出是为了解决 数据共享 的问题。实现共享有许多方法,如:...
  • zangchaodotcnatgmail
  • zangchaodotcnatgmail
  • 2015-09-19 20:56
  • 1636

static变量放在头文件的后果

问题:想用 static TList* g_xxx =NULL; 当全局变量存链表头,但是可能在多处使用该全局变量,listGetHead()之类的参数用,所以就打算把static变量暴露出去,放在头文件。 最后出现了一个问题,那就是往链表存东西,当时用listGetHead和listGetNext...
  • huqinweI987
  • huqinweI987
  • 2015-10-30 16:05
  • 1295

static变量、static函数与普通变量、普通函数的区别

转自:http://blog.163.com/sunshine_linting/blog/static/44893323201191294825184/全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者...
  • lcwyan
  • lcwyan
  • 2016-12-08 13:46
  • 4518

C++回顾之static用法总结、对象的存储,作用域与生存期

关于static用法总结,对象的存储,作用域与生存期
  • ab198604
  • ab198604
  • 2014-02-13 15:15
  • 1734
    个人资料
    • 访问:31183次
    • 积分:450
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:0篇
    • 译文:1篇
    • 评论:0条
    文章分类