【温故而知新】C和C++2:C++的数据存储

1、C++中的变量有那些存储类型?

变量的存储类型会告诉编译器将数据存储在什么地方。在C++中,除了普通变量auto类型外,变量主要有三种存储类型:外部变量extern、静态变量static和寄存器变量register。

(1)外部变量extern类型:顾名思义,用extern描述的变量是定义在该文件外部的变量。在当前文件中使用extern再次声明该变量,就可以将外部文件作用域的变量的作用域扩展到当前文件中。

(2)静态变量static类型:同全局变量一样,静态变量保存于全局存储区;该类型变量在定义的时候初始化,并且仅仅初始化一次;静态变量的生命周期为整个进程的执行过程;

(3)寄存器变量register类型:此类变量存放于CPU的寄存器中,因此存取速度很快;通常只用于局部变量和函数的形参;

2、C++如何控制变量的存取?

控制变量的存取可以使用const、volatile修饰符;

(1)const类型:常数型数据,const型变量在定义的时候赋初值,程序在运行过程中不能对其修改;通常可用于修饰函数不必要修改的参数;

(2)volatile类型:暂态类型,用于可能被隐式修改的变量;主要影响编译器的处理效率;

3、C++对象的生存期和作用域

所谓生存期,表示某对象从被创建开始到释放掉的过程。局部对象、静态对象、全局对象的声明周期分别为块执行过程、从创建开始到进程退出、进程开始到进程退出。同时还存在类作用域,更复杂的还有局部类和嵌套类等。具体情况还需要具体分析。

时间: 2024-09-22 22:15:16

【温故而知新】C和C++2:C++的数据存储的相关文章

MySQL更改数据库数据存储目录

MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录.下文总结整理了实践过程的操作步骤.   1:确认MySQL数据库存储目录 [root@DB-Server tmp]# mysqladmin -u root -p variables | grep datadir   Enter password:   | datadir | /var/lib/mysql/     2:关闭MySQL服务 在更改MySQL的数据目录

基于云上分布式NoSQL的海量气象数据存储和查询方案

前言 气象数据是一类典型的大数据,具有数据量大.时效性高.数据种类丰富等特点.气象数据中大量的数据是时空数据,记录了时间和空间范围内各个点的各个物理量的观测量或者模拟量,每天产生的数据量常在几十TB到上百TB的规模,且在爆发性增长.如何存储和高效的查询这些气象数据越来越成为一个难题. 传统的方案常常采用关系型数据库加文件系统的方式实现这类气象数据的存储和实时查询,这种方案在可扩展性.可维护性和性能上都有一些缺陷,随着数据规模的增大缺点越来越明显.最近几年,学界和业界开始不约而同的转向利用分布式N

游戏排行榜的数据存储问题

问题描述 游戏排行榜的数据存储问题 游戏排行榜数 存数据库还是存文件 如果存数据库 表的结构是怎么样的 还有更新回写的逻辑是怎么样的 求告知. 解决方案 存数据库,用户名.积分.对用户名列做索引. 解决方案二: 你指的是哪个端的数据保存?是手机端,还是服务器端? 如果是手机端,存文件和存数据库差不多. 我自己做的一个小程序的想法是,文件搭配时间戳. 手机端第一次请求排行榜信息的时候,服务器把排行榜数据(比如JSON数据)和该数据的时间戳传回来,手机端把数据存在本地文件里. 手机端再次请求排行榜,

基于flex4技术从零开发flex博客系统:4 数据存储

通过前三课我艰苦卓绝的努力,客户端与服务端通讯已经没有问题了.这对于一个没有学过flex4,没有用过java的初学者,已经相当不容易了.到目前为止,开发博客系统的准备工作,已经仅剩最后一项了:数据存储. Google App Engine没有数据库的概念,不过app engine提供了JDO存储接口,google充许开发者直接定义.存储.查询.修改实体(entity). 一,数据定义 我在sban.flexblog package下添加一个名为Greeting的实体类,这个一个POJO(Plai

基于flex4技术从零开发flex博客系统:5 数据存储之管理Greeting

Google App Engine for java自今年4月7日开放申请,至今不足二十日,但关于GAE for java的博文已经出现了不少.继数据存储之后,这一课要研究如何通过客户端管理Greeting,即CURD的实现. 一,列表显示 在sban.flexblog.HelloWorld.java中添加一个获取所有Greeting的接口: public List<Greeting> getAllGreetings() { List<Greeting> result; try {

使用XML进行数据存储与备份的实现(1)

xml|备份|数据 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  XML(eXtensible Markup Language,可扩展标记语言)作为一种数据标记语言正在不断引起人们的关注,XML的可扩展性已经受到了越来越多的人的关注,特别是在跨平台的数据交换当中,XML技术的运用可以轻松的解决这个问题.越来越多的企业宣布将在他们的产品中增加对XML的支持,Micro

使用XML进行数据存储与备份的实现(2)

xml|备份|数据 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  $fields=mysql_list_fields("embed",$table,$con);$j=0;//$num_fields=mysql_field_name($fields,$j);//echo $num_fields;while ($j<mysql_num_fiel

SQL Server 2000中的数据存储形式(二)

server|数据 SQL Server 是一个关系数据库管理系统,它最初是由Microsoft .Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本.在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上专注于开发推广SQL Server 的Windows NT 版本,Sybase 则较专注于SQL Server在U

数据存储指南之存储备份技术

备份|数据 数据存储备份技术一般包含硬件技术及软件技术等,硬件技术主要是磁带机技术,软件技术主要是通用和专用备份软件技术等. 磁带机技术: 无论是硬盘技术,还是光盘技术,都不适合用来进行数据存储备份,只有磁带机技术才真正适合数据存储备份领域.事实上,磁带机技术长期以来一直是首选的唯一的数据存储备份技术,因为磁带介质不仅能提供高容量.高可靠性以及可管理性,而且价格比光盘.磁盘媒体便宜很多. 作为一种备份设备,磁带机技术也在不断发展.当前市场上的磁带机,按其记录方式来分,可归纳为二大类:一类是数据流