C++ Primer Plus学习:第九章 内存模型和名称空间(1)

来源:互联网 发布:西门子选型软件sizer 编辑:程序博客网 时间:2024/04/29 16:55
头文件
  同一个文件中,只能将头文件包含一次
  头文件
    如果文件名包含尖括号中,则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声明它
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小米ipad死机了怎么办 ipad死机了黑屏怎么办 小米4死机了怎么办 小米平板黑屏是怎么办? ipad死机怎么办不能关机 ipad突然死机了怎么办 京东买ipad坏了怎么办 ipad开机键失灵怎么办 苹果手机按键坏了怎么办 ipad使用中黑屏怎么办 苹果下不可软件怎么办 大学毕业想要当演员怎么办 郑州东站怎么办临时身份证 因招工年龄大造小档桉怎么办 6楼层顶墙边漏水怎么办 信访三级终结后怎么办 领导安排工作不合理怎么办 老板不安排工作怎么办 孩子啃老父母怎么办 孩子变成讨好形怎么办 工厂破产了工资怎么办 失业就业登记证怎么办? 如果父母是教师怎么办 老人档案丢了怎么办 想离婚想要孩子怎么办 一二年级成绩差怎么办 高考复读又失败怎么办 孩子不想估成绩怎么办 手机信号被屏蔽了怎么办 西安市旅游年卡怎么办 广电宽带网速慢怎么办 电视智能卡坏了怎么办 家乐卡二次授信怎么办? 邢台银行倒闭了怎么办 不敢和导师交流怎么办 考上一个破大学怎么办 腻子粉检测报告怎么办 电子厂插件很慢怎么办 预付费电表跳闸怎么办 电费有疑问怎么办大连 农村电表箱坏了怎么办