- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 函数与预处理
回顾函数的定义及调用
# include iostream
using namespace std;
int main()
{ int k, m, n, i;
float fk, fm, fn;
cinkmn;
fk=1;
for(i=1; i=k; i++)
fk = fk*i;
fm=1;
for(i=1; i=m; i++)
fm = fm*i;
fn=1;
for(i=1; i=n; i++)
fn = fn*i;
coutfm/(fn+fk)endl;
return 0;
}
# include iostream
using namespace std;
int main()
{ int k, m, n;
float fk, fm, fn;
float fact(int n);
cinmnk;
fm = fact(m);
fn = fact(n);
fk = fact(k);
coutfm/(fn+fk);
return 0;
}
float fact(int n)
{ int i;
float f=1;
for(i=1; i=n; i++)
f=f*i;
return f;
}
变量属性
作用域:每个变量的有效作用范围,即程序中可以使用该变量的区域。
局部变量、全局变量
存储期(生命期):变量在内存中的存在期间。
静态存储期、动态存储期
存储类别:数据在内存中的存储方法。
自动的(auto)、静态的(static)、寄存器的(register)、外部的(extern)
4.11 局部变量和全局变量4.11.1 局部变量
在函数体内定义
仅在定义它的函数体内才能使用
不会被自动初始化为0
不同函数中可以使用同名的变量,它们代表不同的对象,互不干扰。
形式参数也是局部变量
函数退出时,局部变量随之消失。
// Example
# include iostream
using namespace std;
void func ( ) ;
int main ( )
{
int n ;
n = 2;
coutnendl;
func( );
coutnendl;
return 0;
}
void func ( )
{
int n ;
coutnendl;
n = 3 ;
coutnendl;
}
两个局部变量n是两个不同的变量!
Warning: n未赋初值
// Example
# include iostream
using namespace std;
void func ( int x , int y )
{
int a=1, b=2 ;
coutxyendl;
}
int main ( )
{
coutxyendl;
coutabendl;
return 0;
}
形式参数也是局部变量
错误:未定义,不合法。
4.11.2 全局变量
在函数之外定义
自动初始化为 0
在定义之后,整个程序可用。
// Example
# include iostream
using namespace std;
int a, b = 1 ; // 定义全局变量a , b 全程序可见
void f1 ( ) ;
void f2 ( ) ;
int main ( )
{cout a1 = a , b1 = b endl ;
f1( ) ;
f2( ) ;
return 0;
}
int i , j ; //定义全局变量i , j 该位置以下可见
void f1 ( )
{ cout a2 = ++a , b2 = ++b endl ;
cout i1 = i , j1 = j endl;
}
void f2 ( )
{ cout a3 = ++a , b3 = ++b endl ;
cout i2 = ++i , j2 = ++j endl ;
}
可以在程序中间的任何地方定义全局变量,但必须在任何函数之外。
全局变量定义之前的所有函数定义不会知道该
您可能关注的文档
- 防雷防静电接地检查标准概览.ppt
- 防雷及接地安装质量控制概览.ppt
- 防雷接地安装概览.ppt
- cad模块五案例.pptx
- 轨道车电传动基础讲义.ppt
- cad模块一案例.pptx
- 防雷接地工程定额概览.ppt
- 防雷接地施工工艺概览.ppt
- Y-△降压启动控制线路案例.ppt
- 钢琴即兴伴奏教学概览.ppt
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
文档评论(0)