C++ Primer Plus第九章学习笔记
2012-02-17 15:21
405 查看
1. 作用域
先贴一下我的代码:
1. print.h
2. main.cpp
3. file2.cpp
首先,可以看出来,在main.cpp中全局变量有2个,而局部变量有4个,全局变量少了auto和register修饰的变量。因为全局变量不能加上auto和register(因为这两种都是根据函数的退出或代码块的执行结束而退出的)
在file2.cpp中,由于varible3~varible7未影响到file2.cpp,因此虽然仍然存在(因为main函数尚未执行完毕),但是无法作用与file2.cpp
再看varible1 和varible2,因为varible2只作用于其文件中(main.cpp),因此重新声明后实际上就是另外一个变量了。而extern varible1实际上就是main.cpp中的那一个变量,所以说其值为10.而varible1的值为0.
所以运行结果为10 0
先贴一下我的代码:
1. print.h
#ifndef PRINT_H_INCLUDED #define PRINT_H_INCLUDED void print(); #endif // PRINT_H_INCLUDED
2. main.cpp
#include <iostream> #include "print.h" using namespace std; int varible1 = 10; //static static int varible2 = 20;//static,only in this file int main() { static int varible3 = 30;//static,only in this function auto int varible4 = 40;//auto varible int varible5 = 50; //auto varible,only in this function register int varible6 = 60;//auto print(); return 0; }
3. file2.cpp
#include <iostream> #include <iomanip> #include "print.h" using namespace std; extern int varible1; int varible2; void print() { std::cout << std::setw(5); std::cout << varible1 << setw(5)<< varible2; }
首先,可以看出来,在main.cpp中全局变量有2个,而局部变量有4个,全局变量少了auto和register修饰的变量。因为全局变量不能加上auto和register(因为这两种都是根据函数的退出或代码块的执行结束而退出的)
在file2.cpp中,由于varible3~varible7未影响到file2.cpp,因此虽然仍然存在(因为main函数尚未执行完毕),但是无法作用与file2.cpp
再看varible1 和varible2,因为varible2只作用于其文件中(main.cpp),因此重新声明后实际上就是另外一个变量了。而extern varible1实际上就是main.cpp中的那一个变量,所以说其值为10.而varible1的值为0.
所以运行结果为10 0
相关文章推荐
- C++ Primer plus 学习笔记之第九章内存模型和名称空间(1)
- C++PrimerPlus第九章学习笔记——内存模型和名称空间
- C++ Primer plus 学习笔记之 数组、array和vector异同点
- 2012/1/8 《C++ Primer Plus》第二章:开始学习C++ 学习笔记
- [学习笔记][C++Primer Plus]使用cout格式化输出字符串,3q xuzhong
- 2012/1/11 《C++ Primer Plus》第四章:复合类型 学习笔记
- C++PrimerPlus第八章学习笔记——函数探幽
- C++PrimerPlus第十章学习笔记——对象和类
- 《C++ Primer Plus》14.4 类模板 学习笔记
- 2012/1/8 《C++ Primer Plus》第二章:开始学习C++ 学习笔记
- 【学习笔记】C++primer plus 9.内存模型与名称空间
- 2012/2/3 《C++ Primer Plus》第十四章:C++中的代码重用 学习笔记
- 《C++ Primer Plus》10.2 抽象和类 学习笔记
- 《C++ Primer Plus(第六版)》(13)(第九章 内存模型和命名空间 笔记)
- 【学习C++】C++ Primer Plus (第六版)第九章编程练习1-4
- C++ Primer Plus (第6版)笔记心的---开始学习C++
- C++ Primer plus第6版第10章学习笔记
- 《C++ Primer Plus》第16章 string类和标准模板库 学习笔记
- 2012/1/27 《C++ Primer Plus》第十二章:类和动态内存分配 学习笔记
- 《C++ Primer Plus》10.3 类的构造函数和析构函数 学习笔记