c++ 变量的存储类别
- c++的存储类别
- 首先我们得知道c++的变量存储方式:静态存储和动态存储两种,全局变量使用的是静态存储,函数的形参和局部变量是使用的动态存储。
- 当然在有的教程中又分为自动存储,静态存储,动态存储。相信所有朋友都知道内存四区的概念,这个所说的静态存储就是存储在我们所说的数据区中,自动存储就是说存储在栈中的变量,而动态存储就是说在堆区的变量。
- 而第二行的叫法就是把自动存储并入了动态存储(当然真正的程序的运行时的内存机制远远不是这么简单,得去学习操作系统,内核编程等很多知识才能搞清楚,在这里就不叙述了,主要是不会,半桶水,嘿嘿)
- 下面我们来看下函数中可以声明或者定义的4中类型的变量auto,static,register,extern
auto举个例子
#include<iostream>
using namespace std;
int sum()
{
auto ; //相当于int x=0;我们平时使用的时候auto是默认,可以不写
return x;
}
int main()
{
int x=sum(); //这里相当于auto int x=sum(); auto可以写也而已不写
system("pause");
;
}
7.是不是复制粘贴进你的vs有错误,(类型说明符的组合无效),嘿嘿,当然有错了,这是因为auto的语意发生了改变,新版的c++auto的意思是自动类型推倒,如果你非得让上面的例子成功的话,那么可以去百度,应该怎么设置vs。
static用这个关键字声明的变量是在静态区,
#include<iostream>
using namespace std;
int sum(int x)
{
;//y会一直保存在程序中,是静态存储,并且只会进行一次初始化
y = y + x;
return y;
}
int main()
{
cout << sum() << endl;
cout << sum() << endl;
system("pause");
;
}
8.register用这个关键字声明的变量,是存储在寄存器中,访问速度非常快,因此一般用于循环时候要多次用到的变量,由于电脑中寄存器并不多,因此register声明的变量个数不能多
代码就不写了,同上
#include<iostream>
using namespace std;
int sum()
{
register ;//寄存器变量
)
y++;
return y;
}
int main()
{
cout << sum() << endl;
cout << sum() << endl;
system("pause");
;
}
9.extern 声明的变量是外部变量,什么意思呢,比如a.cpp中有个变量int c=0;在b.cpp中想用它怎么办呢,extern int c;就ok了,当然a.cpp和b.cpp得是同一个项目
c++ 变量的存储类别的更多相关文章
- C++变量的存储类别与作用域
总结一下C++中变量的存储类别以及变量的作用域. (1)标示符的存储类别决定了标示符在内存中存在的时间(我们可以理解标示符就是确定一个变量的符号,也就是我们所说的变量名) 二:存储类别 (1)静态存储 ...
- c语言 变量的存储类别以及对应的内存分配?
<h4><strong>1.变量的存储类别</strong></h4>从变量值存在的角度来分,可以分为静态存储方式和动态存储方式.所谓静态存储方式指在程 ...
- C语言变量的存储类别
我们知道,从变量的作用域(即从空间)角度来分,可以分为全局变量和局部变量. 从另一个角度,从变量值存在的作时间(即生存期)角度来分,可以分为静态存储方式和动态存储方式. 静态存储方式:是指在程序运行期 ...
- [C++程序设计]变量的存储类别
全局变量全部存放在静态存储区中,在程序开始执行时给全局变量分配存储单元,程序执行完毕就释放这些空间.在程序执行过程中它们占据固定的存储单元,而不是动态地进行分配和释放. 在动态存储区中存放以下数据: ...
- C++变量存储类别和内存四区
变量存储类别 变量声明/定义的一般形式: 存储类别 数据类型 变量名 存储类别指的是数据在内存中存储的方法.存储方法分为静态存储和动态存储两大类.标准C语言为变量.常量和函数定义了4种存储类型:ext ...
- C++变量作用域、生存期、存储类别
写C.C++代码的小伙伴一定在头疼变量的作用域.生存期.存储类别问题.什么静态.外部.寄存器.局部.全局搞得一头雾水.今天咱们就来梳理一下他们的变态关系(什么不得了的事情???) 1.变量的作用域 说 ...
- C语言杂谈(三)存储类别
本文讨论C语言中的存储类别,包括数据在内存的存储.变量的存储类别.函数的存储类别.生存周期.下图为计算机的存储空间,有寄存器和内存. 一.存储区域 1.寄存器:存放立即参加运算的数据. 2.系统区:存 ...
- c 变量的存储类型auto等(基础知识)和c函数变量
总结 1).在c语言中每一个变量和函数有两个属性:数据类型和数据的存储类别. 2). 对数据型(如整型.字符型等).存储类别指的是数据在内存中存储的方式. 存储方式分为两大类: 静态存储类和动态存储类 ...
- C语言变量、函数的作用域及变量的存储方式
一.变量的作用域和存储方式 在C语言中每个变量都有两种基本属性:数据类型.数据的存储类别. 数据类型很多人都已熟知,例如:字符型(char).整型(int).浮点型(float)等等.存储类别是指数据 ...
随机推荐
- Python爬虫之urllib模块1
Python爬虫之urllib模块1 本文来自网友投稿.作者PG,一个待毕业待就业二流大学生.玄魂工作室未对该文章内容做任何改变. 因为本人一直对推理悬疑比较感兴趣,所以这次爬取的网站也是平时看一些悬 ...
- (转载) Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
1 . 查看当天日期 select current_date(); 2. 查看当天时间 select current_time(); 3.查看当天时间日期 select current_timesta ...
- 在WebStorm中启动Angular项目
点击配置 创建 选择命令 package.json 运行 查看运行结果
- 写一个vue组件
写一个vue组件 我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目.如果还不知道怎么用webpack构建一个vue的工程的,可以移步到vue-cli. 一个完整的vue组件 ...
- python入门(7)Python程序的风格
python入门(7)Python程序的风格 Python采用缩进方式,写出来的代码就像下面的样子: # print absolute value of an integer: a = 100 if ...
- SQL Server 利用触发器对多表视图进行更新
其步骤就是:利用update操作触发器产生的2个虚拟表[inserted]用来存储修改的数据信息和[deleted]表,然后将对应的数据更新到对应数据表中的字段信息中: 1.首先创建3个表: a.信息 ...
- python中的turtle库绘制图形
1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...
- 在Visual Studio2017和2015中开发报表项目
1.在sqlserver2008的安装目录中是自带了一个报表开发工具的,但在sqlserver2016中没找到,我推测sqlserver2014也没有,哈,我不探寻这个: 2.在VS2015中想要开发 ...
- node.js使用scp2来进行scp操作
示例: var client = require('scp2'); client.scp({ host: '175.84.24.92', username: 'remoteusername', pas ...
- MySQL 表空间传输
聊到MySQL数据迁移的话题,表空间传输时一个很实用的方法. 在MySQL 5.6 Oracle引入了一个可移动表空间的特征(复制的表空间到另一个服务器)和Percona Server采用部分备份,这 ...