C++ Primer Plus学习:第九章 内存模型和名称空间(1)
来源:互联网 发布:西门子选型软件sizer 编辑:程序博客网 时间:2024/04/29 16:55
头文件
同一个文件中,只能将头文件包含一次
头文件
如果文件名包含尖括号中,则C++编译器将在存储标准头文件的主机系统的头文件系统中查找
如果文件名包含在双引号中,则编译器首先查找当前的工作目录或者源代码目录
存储数据
自动存储持续性
在函数定义中声明的变量(包括函数参数)的存储持续性是自动的
在程序开始执行其所属的函数或者代码块时被创建,在执行完函数或者代码块时,它们使用的内存被释放
静态存储持续性
static关键字
程序整个运行过程中都存在
特征
未被初始化的静态变量的所有位置都被设置为0
只能使用常量表达式来初始化静态变量
动态存储持续性
new操作符分配的内存将一直存在,直到使用delete操作符将其释放或者程序结束为止
另称:自由存储
作用域
存储说明符
auo
自动变量
register
指示寄存器存储类型
static
作用域为整个文件,表示内部链接
被用于局部声明中,表示局部变量的存储持续性
extern
声明引用在其他地方定义的变量
mutable
const
内存被初始化后,程序便不能再修改
volatile
程序没有对内存单元进行修改,其值也可能发生变化
Note
在多文件程序中,可以在一个文件(且只能在一个文件)中定义一个外部变量,使用该变量的其它文件必须使用关键字extern声明它
同一个文件中,只能将头文件包含一次
头文件
如果文件名包含尖括号中,则C++编译器将在存储标准头文件的主机系统的头文件系统中查找
如果文件名包含在双引号中,则编译器首先查找当前的工作目录或者源代码目录
存储数据
自动存储持续性
在函数定义中声明的变量(包括函数参数)的存储持续性是自动的
在程序开始执行其所属的函数或者代码块时被创建,在执行完函数或者代码块时,它们使用的内存被释放
静态存储持续性
static关键字
程序整个运行过程中都存在
特征
未被初始化的静态变量的所有位置都被设置为0
只能使用常量表达式来初始化静态变量
动态存储持续性
new操作符分配的内存将一直存在,直到使用delete操作符将其释放或者程序结束为止
另称:自由存储
作用域
eg
#include <iostream>using namespace std;void oil(int x);int main(){ int texas = 31; int year = 1999; cout<<"In main(),texas = "<<texas<<",&texas = "<<&texas<<endl; cout<<"In main(),year = "<<year<<", &year = "<<&year<<endl; oil(texas); cout<<"In main(),texas = "<<texas<<",&texas = "<<&texas<<endl; cout<<"In main(),year = "<<year<<", &year = "<<&year<<endl; system("pause"); return 0; }void oil(int x){ int texas = 5; cout<<"In oil(),texas = "<<texas<<",&texas = "<<&texas<<endl; cout<<"In oil(),x = "<<x<<",&x = "<<&x<<endl; { int texas = 113; cout<<"In block(),texas = "<<texas<<",&texas = "<<&texas<<endl; cout<<"In block(),x = "<<x<<",&x = "<<&x<<endl; } cout<<"Post-block texas = "<<texas; cout<<",&texas = "<<&texas<<endl; }
extern
#include <iostream>using namespace std;int tom = 3;int dick = 30;static int harry = 300;void remote_access();int main(){ cout<<"main() reports the following address:\n"; cout<<&tom<<" = &tom,"<<&dick<<" = &dick."; cout<<&harry<<" = &harry\n"; remote_access(); system("pause"); return 0; }
#include <iostream>using namespace std;extern int tom;static int dick = 10;int harry = 200;void remote_access(){ cout<<"remote_access() reports the following address:\n"; cout<<&tom<<" = &tom."<<&dick<<" = &dick."; cout<<&harry<<" = &harry"; }
存储说明符
auo
自动变量
register
指示寄存器存储类型
static
作用域为整个文件,表示内部链接
被用于局部声明中,表示局部变量的存储持续性
extern
声明引用在其他地方定义的变量
mutable
const
内存被初始化后,程序便不能再修改
volatile
程序没有对内存单元进行修改,其值也可能发生变化
Note
在多文件程序中,可以在一个文件(且只能在一个文件)中定义一个外部变量,使用该变量的其它文件必须使用关键字extern声明它
- C++ Primer Plus学习:第九章 内存模型和名称空间(1)
- C++ Primer plus 学习笔记之第九章内存模型和名称空间(1)
- C++ Primer Plus学习:第九章 内存模型和名称空间(2)
- 【C++ Primer plus】【第九章】内存模型和名称空间
- c++primer plus 第九章-名称空间
- 【c++ primer】第九章 内存模型和名称空间
- C++Primer内存模型和名称空间
- 【学习笔记】C++primer plus 9.内存模型与名称空间
- 第九章 内存模型和名称空间
- 第九章 内存模型和名称空间
- 第九章 内存模型和名称空间
- 第九章:内存模型和名称空间
- C++PrimerPlus第九章学习笔记——内存模型和名称空间
- C++ primer plus 第9章 内存模型和名称空间
- C++ Primer Plus 第9章 内存模型和名称空间
- 【读书笔记:C++ primer plus 第六版 中文版】第9章 内存模型和名称空间
- c++ primer plus 第9章 内存模型和名称空间
- 《C++ Primer Plus(第六版)》(13)(第九章 内存模型和命名空间 笔记)
- 自定义ImageView重写onTouchEvent
- 80X86常用汇编指令集(不断补充完善中)
- 须知
- WIN7任务栏资料管理器最近打开项目的管理及开始属性“存储并显示最近在开始菜单和任务栏中打开的项目”的解释
- hdu 4001 (2011ACM/ICPC大连网络赛)
- C++ Primer Plus学习:第九章 内存模型和名称空间(1)
- xhprof的使用
- Log4j使用总结
- Android背景透明的 Dialog
- 64位Windows Vista 和Windows 7系统下驱动签名指南
- Ice读书笔记--- TreadControl类的join与detach方法
- Redmine:工程管理软件不错啊
- 发掘 Windows 7 之 开始菜单搜索框
- 常用JS代码