欢迎来到天天文库
浏览记录
ID:26890664
大小:216.01 KB
页数:24页
时间:2018-11-29
《《c程序的结构》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四讲C++程序的结构C++语言程序设计本章主要内容变量的类型作用域与可见性文件结构与编译预处理命令名字空间26.1变量的作用域除了按数据类型区分变量外,根据变量定义的位置,可以把变量分成全局变量与局部变量。全局变量是指定义在函数体外部的变量,它能被所有函数使用。局部变量是指定义在函数或复合语句中的变量,只能在函数或复合语句中使用。intg=100000;intsum(intx,inty){intsum=0;for(inti=x;i<=y;i++)sum=sum+i;returnsum;}voidmain(){intx=1,y=100;cout<2、12345678910111213g为全局变量sum()中x、y为局部变量main()中的x、y为局部变量变量的存储类型auto存储类属于一时性存储,其存储空间可以被若干变量多次覆盖使用。register存储类存放在通用寄存器中。extern存储类在所有函数和程序段中都可引用。static存储类在内存中是以固定地址存放的,在整个程序运行期间都有效。4/****************************p6_1_p.cpp**主程序****************************/#includeusingnamespacestd;externvoid3、p1dispG();externvoidp2dispG();externvoidp2dispg();intG=0,g=0;voidmain(){p1dispG();p2dispG();p2dispg();cout<<"inpG="<usingnamespacestd;externintG;voidp1dispG(){G=11;cout<<"inp1G="<4、_p2.cpp#includeusingnamespacestd;externintG;externintg;voidp2dispG(){G=22;cout<<"inp2G="<5、**************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m=“<6、t)存放CPU执行的机器指令(machineinstructions)代码区是只读的规划了局部变量的相关信息全局数据区/静态数据区包含了程序中已初始化的全局变量、已初始化的静态变量(全局、局部)常量数据(如字符串常量)常变量7进程的结构如果将某个可执行文件加载到内存运行,则将成为一个进程栈区堆区已初始化全局变量静态变量和常量数据数据区可执行代码代码区初始化全局变量静态变量和常量数据可执行代码可执行文件结构数据区代码区进程结构86.1.3变量在内存中的存储当一个程序准备运行时,操作系统会为程序分配一块内存空间,C++程序的内存通常被分为四个区:①全局数据区(dataarea)②代码区(7、codearea)③栈区(stackarea)④堆区(heaparea)全局变量、静态变量、字符串常量、常变量存放在全局数据区;所有的函数和代码存放在代码区;为运行函数而分配的函数参数、局部变量、返回地址存放在栈区;堆区用于动态内存分配。变量的生存期为从产生到消失的时期。全局变量、静态变量、常变量生存周期为整个程序的生存周期,因此称为静态生存期;局部变量的生存周期起于函数调用,结束于函数调用结束,其生存期是动态的,因此称为动态生存期。注意:堆空间不是系统为
2、12345678910111213g为全局变量sum()中x、y为局部变量main()中的x、y为局部变量变量的存储类型auto存储类属于一时性存储,其存储空间可以被若干变量多次覆盖使用。register存储类存放在通用寄存器中。extern存储类在所有函数和程序段中都可引用。static存储类在内存中是以固定地址存放的,在整个程序运行期间都有效。4/****************************p6_1_p.cpp**主程序****************************/#includeusingnamespacestd;externvoid
3、p1dispG();externvoidp2dispG();externvoidp2dispg();intG=0,g=0;voidmain(){p1dispG();p2dispG();p2dispg();cout<<"inpG="<usingnamespacestd;externintG;voidp1dispG(){G=11;cout<<"inp1G="<4、_p2.cpp#includeusingnamespacestd;externintG;externintg;voidp2dispG(){G=22;cout<<"inp2G="<5、**************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m=“<6、t)存放CPU执行的机器指令(machineinstructions)代码区是只读的规划了局部变量的相关信息全局数据区/静态数据区包含了程序中已初始化的全局变量、已初始化的静态变量(全局、局部)常量数据(如字符串常量)常变量7进程的结构如果将某个可执行文件加载到内存运行,则将成为一个进程栈区堆区已初始化全局变量静态变量和常量数据数据区可执行代码代码区初始化全局变量静态变量和常量数据可执行代码可执行文件结构数据区代码区进程结构86.1.3变量在内存中的存储当一个程序准备运行时,操作系统会为程序分配一块内存空间,C++程序的内存通常被分为四个区:①全局数据区(dataarea)②代码区(7、codearea)③栈区(stackarea)④堆区(heaparea)全局变量、静态变量、字符串常量、常变量存放在全局数据区;所有的函数和代码存放在代码区;为运行函数而分配的函数参数、局部变量、返回地址存放在栈区;堆区用于动态内存分配。变量的生存期为从产生到消失的时期。全局变量、静态变量、常变量生存周期为整个程序的生存周期,因此称为静态生存期;局部变量的生存周期起于函数调用,结束于函数调用结束,其生存期是动态的,因此称为动态生存期。注意:堆空间不是系统为
4、_p2.cpp#includeusingnamespacestd;externintG;externintg;voidp2dispG(){G=22;cout<<"inp2G="<5、**************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m=“<6、t)存放CPU执行的机器指令(machineinstructions)代码区是只读的规划了局部变量的相关信息全局数据区/静态数据区包含了程序中已初始化的全局变量、已初始化的静态变量(全局、局部)常量数据(如字符串常量)常变量7进程的结构如果将某个可执行文件加载到内存运行,则将成为一个进程栈区堆区已初始化全局变量静态变量和常量数据数据区可执行代码代码区初始化全局变量静态变量和常量数据可执行代码可执行文件结构数据区代码区进程结构86.1.3变量在内存中的存储当一个程序准备运行时,操作系统会为程序分配一块内存空间,C++程序的内存通常被分为四个区:①全局数据区(dataarea)②代码区(7、codearea)③栈区(stackarea)④堆区(heaparea)全局变量、静态变量、字符串常量、常变量存放在全局数据区;所有的函数和代码存放在代码区;为运行函数而分配的函数参数、局部变量、返回地址存放在栈区;堆区用于动态内存分配。变量的生存期为从产生到消失的时期。全局变量、静态变量、常变量生存周期为整个程序的生存周期,因此称为静态生存期;局部变量的生存周期起于函数调用,结束于函数调用结束,其生存期是动态的,因此称为动态生存期。注意:堆空间不是系统为
5、**************/#includeusingnamespacestd;voidfun(){staticintn;intm=0;n++;m++;cout<<"m=“<6、t)存放CPU执行的机器指令(machineinstructions)代码区是只读的规划了局部变量的相关信息全局数据区/静态数据区包含了程序中已初始化的全局变量、已初始化的静态变量(全局、局部)常量数据(如字符串常量)常变量7进程的结构如果将某个可执行文件加载到内存运行,则将成为一个进程栈区堆区已初始化全局变量静态变量和常量数据数据区可执行代码代码区初始化全局变量静态变量和常量数据可执行代码可执行文件结构数据区代码区进程结构86.1.3变量在内存中的存储当一个程序准备运行时,操作系统会为程序分配一块内存空间,C++程序的内存通常被分为四个区:①全局数据区(dataarea)②代码区(7、codearea)③栈区(stackarea)④堆区(heaparea)全局变量、静态变量、字符串常量、常变量存放在全局数据区;所有的函数和代码存放在代码区;为运行函数而分配的函数参数、局部变量、返回地址存放在栈区;堆区用于动态内存分配。变量的生存期为从产生到消失的时期。全局变量、静态变量、常变量生存周期为整个程序的生存周期,因此称为静态生存期;局部变量的生存周期起于函数调用,结束于函数调用结束,其生存期是动态的,因此称为动态生存期。注意:堆空间不是系统为
6、t)存放CPU执行的机器指令(machineinstructions)代码区是只读的规划了局部变量的相关信息全局数据区/静态数据区包含了程序中已初始化的全局变量、已初始化的静态变量(全局、局部)常量数据(如字符串常量)常变量7进程的结构如果将某个可执行文件加载到内存运行,则将成为一个进程栈区堆区已初始化全局变量静态变量和常量数据数据区可执行代码代码区初始化全局变量静态变量和常量数据可执行代码可执行文件结构数据区代码区进程结构86.1.3变量在内存中的存储当一个程序准备运行时,操作系统会为程序分配一块内存空间,C++程序的内存通常被分为四个区:①全局数据区(dataarea)②代码区(
7、codearea)③栈区(stackarea)④堆区(heaparea)全局变量、静态变量、字符串常量、常变量存放在全局数据区;所有的函数和代码存放在代码区;为运行函数而分配的函数参数、局部变量、返回地址存放在栈区;堆区用于动态内存分配。变量的生存期为从产生到消失的时期。全局变量、静态变量、常变量生存周期为整个程序的生存周期,因此称为静态生存期;局部变量的生存周期起于函数调用,结束于函数调用结束,其生存期是动态的,因此称为动态生存期。注意:堆空间不是系统为
此文档下载收益归作者所有