如果只声明了类而未定义对象,则类的一般成员变量是不占用内存空间的,只有在定义对象的时候,才为对象的成员变量分配空间。但是,静态成员变量不属于某一个对象,在为对象分配空间中,不包括静态成员变量所占的空间。程序测试例子例如:

程序运行结果如下:

g++ test.cpp -o exe

wkf@ubuntu:~/c++$ ./exe

len = 32

可以看到student类对象的大小就是 char addr[32] 成员变量所占用的 32个字节空间,对于 number 这个static 类型的数据,不占用对象的内存空间。

静态成员变量是在所有对象之外单独开辟空间,只要在类中定义了静态成员变量,即使不定义对象,也为静态成员变量分配空间,它可以被类对象引用。

在一个类中可以有一个或多个静态成员变量,所有的对象共享这些静态成员变量,都可以引用它。

学习C语言时已了解静态变量的概念:如果在一个函数中定义了静态变量,在函数结束时该静态变量并不释放,仍然存在并保留其值。现在讨论的静态成员变量也是类似的,它不随对象的建立而分配空间,也不随对象的撤销而释放(一般成员变量是在对象建立时分配空间,在对象撤销时释放)。静态成员变量是在程序编译时被分配空间的,到程序结束的时候才释放空间。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

C++静态成员变量在内存中的存储方式相关推荐

  1. PHP变量在内存中的存储方式

    原文:http://www.phppan.com/tag/refcount/ 每门计算机语言都需要一些容器来保存变量数据.在一些语言当中,变量都有特定的类型,如字符串,数组,对象等等.比如C和Pasc ...

  2. 面试宝典系列-PHP变量在内存中的存储方式

    为什么80%的码农都做不了架构师?>>>    函数传参时是赋值操作,只是其存储在不同的符号表(函数符号表),并且引用计数加2,而不是加1.原因是函数栈也包含了这个变量容器的引用. ...

  3. C语言的数据类型大全,整型数据在内存中的存储方式

    一.数据类型 通过长时间的学习C语言以及代码的编写,我掌握了很多很多的数据类型,下面就给大家罗列一下. 1.内置数据类型 char        //字符数据类型--                  ...

  4. Java变量在内存_Java变量在内存中的存储

    [TOC] Java变量在内存中的存储 以下探究成员变量和局部变量在内存中的存储情况. package com.my.pac04; /** * @author Summerday * @date 20 ...

  5. c++全局类对象_C++ 类在内存中的存储方式(一)

    说了这么久的 C++ 终于说到类了,还是从内存出发来讨论一下 C++ 的类在内存中的存储方式(之前写过一篇内存对齐的文章,类同样在一定程度上遵循内存对齐原则,不过比结构体复杂一下) 如有侵权,请联系 ...

  6. JavaScript中数据在内存中的存储方式

    JavaScript中数据在内存中的存储方式 1.js数据类型分类 简单数据类型:Number.String.Boolean.Undefined.Null 复杂数据类型:Object.Array.Fu ...

  7. c语言double数据存储形式,C语言 float、double数据在内存中的存储方式

    float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数 ...

  8. C/C++浮点数在内存中的存储方式《转》

    那天有人在汇编群里有人问了一个 #include <iostream> #include <stdio.h> using namespace std; int main() { ...

  9. 【C语言】浮点型数据在内存中的存储方式

    目录 一. 前言 二. 问题的引出 三. 两类浮点型数据(float.double)在内存中的存储方式 3.1 两类浮点型数据的存储模型 3.1.1 浮点型数据数值读取的通用模型 3.1.2 floa ...

最新文章

  1. 随机森林算法demo python spark
  2. 通用计算机系统的工作方式,通用计算机操作系统典型体系结构综述
  3. MTCNN-tensorflow源码解析-gen_landmark_aug_12.py;gen_imglist_pnet.py
  4. fprintf,input和disp函数
  5. matlab画图,均值±标准差
  6. 直通输出设备 android kodi,PVE直通核显搭建LibreELEC KODI HTPC实现HDMI输出
  7. 【STM32】红外对射计数器计数原理和代码
  8. vue + echarts 实现以中国为中心的世界3D地图
  9. 计算机英语念法,电脑的英文读音标准带音标的
  10. 把整个网页下载下来的方法
  11. 天冷服务器自动关机,天冷iphone自动关机怎么办 天冷iphone自动关机解决办法【详解】...
  12. 原生微信小程序使用class 三元运算符实现多选案例
  13. 编程入门先学python好不好,学python用什么软件编程
  14. MAML-RL Pytorch 代码解读 (6) -- maml_rl/envs/bandit.py
  15. redux入门_Redux入门
  16. Couldnot load Project The file couldn‘t be opened
  17. [下属谈话]管理者与下属谈话的技巧以及注意点
  18. BIGEMAP APP导入/导出文件\照片(kml\shp\cad(dxf)\txt\excel)
  19. 如何使用Python轻松解决TSP问题(遗传算法)
  20. 卷积神经网络 ——卷积神经网络的结构

热门文章

  1. sonar 与 NOSONAR
  2. 反向迭代器(rbegin,rend)详解
  3. 拼多多批量采集 互联网大数据获取API
  4. 链接器工具错误 LNK2005
  5. Python 字符数据类型和数字类型的转换
  6. 打印一个字符串的全部子序列,包括空字符串
  7. node爬虫基础~使用cheerio
  8. 数学建模问题的python相关代码
  9. Spring Cloud版本介绍
  10. grib2转json