C++静态成员变量在内存中的存储方式
如果只声明了类而未定义对象,则类的一般成员变量是不占用内存空间的,只有在定义对象的时候,才为对象的成员变量分配空间。但是,静态成员变量不属于某一个对象,在为对象分配空间中,不包括静态成员变量所占的空间。程序测试例子例如:
程序运行结果如下:
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++静态成员变量在内存中的存储方式相关推荐
- PHP变量在内存中的存储方式
原文:http://www.phppan.com/tag/refcount/ 每门计算机语言都需要一些容器来保存变量数据.在一些语言当中,变量都有特定的类型,如字符串,数组,对象等等.比如C和Pasc ...
- 面试宝典系列-PHP变量在内存中的存储方式
为什么80%的码农都做不了架构师?>>> 函数传参时是赋值操作,只是其存储在不同的符号表(函数符号表),并且引用计数加2,而不是加1.原因是函数栈也包含了这个变量容器的引用. ...
- C语言的数据类型大全,整型数据在内存中的存储方式
一.数据类型 通过长时间的学习C语言以及代码的编写,我掌握了很多很多的数据类型,下面就给大家罗列一下. 1.内置数据类型 char //字符数据类型-- ...
- Java变量在内存_Java变量在内存中的存储
[TOC] Java变量在内存中的存储 以下探究成员变量和局部变量在内存中的存储情况. package com.my.pac04; /** * @author Summerday * @date 20 ...
- c++全局类对象_C++ 类在内存中的存储方式(一)
说了这么久的 C++ 终于说到类了,还是从内存出发来讨论一下 C++ 的类在内存中的存储方式(之前写过一篇内存对齐的文章,类同样在一定程度上遵循内存对齐原则,不过比结构体复杂一下) 如有侵权,请联系 ...
- JavaScript中数据在内存中的存储方式
JavaScript中数据在内存中的存储方式 1.js数据类型分类 简单数据类型:Number.String.Boolean.Undefined.Null 复杂数据类型:Object.Array.Fu ...
- c语言double数据存储形式,C语言 float、double数据在内存中的存储方式
float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数 ...
- C/C++浮点数在内存中的存储方式《转》
那天有人在汇编群里有人问了一个 #include <iostream> #include <stdio.h> using namespace std; int main() { ...
- 【C语言】浮点型数据在内存中的存储方式
目录 一. 前言 二. 问题的引出 三. 两类浮点型数据(float.double)在内存中的存储方式 3.1 两类浮点型数据的存储模型 3.1.1 浮点型数据数值读取的通用模型 3.1.2 floa ...
最新文章
- 随机森林算法demo python spark
- 通用计算机系统的工作方式,通用计算机操作系统典型体系结构综述
- MTCNN-tensorflow源码解析-gen_landmark_aug_12.py;gen_imglist_pnet.py
- fprintf,input和disp函数
- matlab画图,均值±标准差
- 直通输出设备 android kodi,PVE直通核显搭建LibreELEC KODI HTPC实现HDMI输出
- 【STM32】红外对射计数器计数原理和代码
- vue + echarts 实现以中国为中心的世界3D地图
- 计算机英语念法,电脑的英文读音标准带音标的
- 把整个网页下载下来的方法
- 天冷服务器自动关机,天冷iphone自动关机怎么办 天冷iphone自动关机解决办法【详解】...
- 原生微信小程序使用class 三元运算符实现多选案例
- 编程入门先学python好不好,学python用什么软件编程
- MAML-RL Pytorch 代码解读 (6) -- maml_rl/envs/bandit.py
- redux入门_Redux入门
- Couldnot load Project The file couldn‘t be opened
- [下属谈话]管理者与下属谈话的技巧以及注意点
- BIGEMAP APP导入/导出文件\照片(kml\shp\cad(dxf)\txt\excel)
- 如何使用Python轻松解决TSP问题(遗传算法)
- 卷积神经网络 ——卷积神经网络的结构