- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
E7ABA0名词的空间域时间域和物理存储位置
空间域:一个类型或量值,从程序的什么位置到什么位置是有效的,是可以引用的,是占据内存的。
时间域:一个类型或量值,在程序执行过程中,从什么时刻开始到什么时刻是占据内存的。
第6章名词的空间域、时间域和物理存储位置
名词的空间域和时间域不完全一致。
有空间域的类型或量值,一定有时间域。即在程序的某位置可以访问的类型或量值,此时一定占据内存;
有时间域的类型或量值,不一定有空间域。即有的时候,程序执行到某个位置,某个类型或量值虽然占据内存,但无法访问,即在该位置不可见。
6.1 C/C++程序的逻辑结构
程序从小到大可分为如下逻辑单位:
语句(statement):分号结束
2.模块(block):
一对花括号括起的若干语句。
3.嵌套模块:
多对花括号的嵌套。
4.文件(file):
程序的存盘单位。文件中通常包含多个模块(或嵌套模块),每个模块内包含多个语句。
5.工程(project):
工程是功能单位,是对多个文件进行组织和管理的框架。同一个工程内的文件之间可以交换数据,共享函数。
6.工作区(workspace):
工作区是VC++最大的开发单位,是对多个工程进行组织和管理的框架。一个工作区内的多个工程应该是相关的。不同工程间可以共享文件。
图6. 1 C/C++程序逻辑结构
6.2名词性的类型和量值在各逻辑结构上的空间域
6.2.1模块域
模块{ }是空间作用域的最小范围。
缺省情况下,定义在模块内(一对花括号内)的类型和量值,其有效范围是从定义位置到本模块结束。出本模块右花括号后,该类型或量值因为释放内存空间而失效,无法访问。
例6. 1 量值模块作用域的验证
#include stdio.h
int fun(int x)
void main()
{ int a=10;
int b;
printf(a= %d\n,a);
b=fun(a);
printf(a= %d, b= %d\n, a, b);
}
调用fun函数,a(10)为实参
fun函数的声明
int fun(int x)
{ int a=20;
printf(a= %d, x= %d\n, a, x);
return a+x;
}
fun内定义的a只在fun内有效
返回a+x的值(20+10)
a= 10
a= 20, x= 10
a= 10, b= 30
Press any key to continue
main()中的输出
fun()中的输出
main()中的输出
例6. 1 量值模块作用域的验证
#include stdio.h
int fun(int x)
void main()
{ int a=10;
int b;
printf(a= %d\n,a);
b=fun(a);
printf(a= %d, b= %d\n, a, b);
printf(“x= %d\n, x);
}
调用fun函数,a(10)为实参
fun函数的声明
编译出错:error C2065: x : undeclared identifier
int fun(int x)
{ int a=20;
printf(a= %d, x= %d\n, a, x);
printf(b= %d\n, b);
return a+x;
}
fun内定义的a只在fun内有效
返回a+x的值(20+10)
编译出错:error C2065: b : undeclared identifier
例6. 2 类型模块作用域的验证
#include stdio.h
Person fun();
Person fun()
{ struct Person
{ int id;
char name[10];
} ZS={1, 张三};
return ZS;
}
void main()
{
Person LiSi;
LiSi=fun();
}
fun内定义的类型Person,只在fun内有效
在main函数内声明一个在fun函数内定义的Person类型的变量LiSi,编译出错
声明Person类型的变量ZS,并赋值
例6. 2 类型模块作用域的验证
#include stdio.h
struct Person
{ int id;
char name[10];
} ;
Person fun();
void main()
{ Person LiSi;
LiSi=fun();
printf(id=%d\n,LiSi.id );
printf(name=%s\n,LiSi.name );
}
Person fun
您可能关注的文档
- 《计算机硬件组装与维护》教案.doc
- 听力真题V30014.doc
- 《计算机组装与维护》期末考试试题模拟题复习题技能竞赛.doc
- 高一物理必修1期末试卷(国际班).doc
- 《证据学(本科必修)》2014年1.7月期末试题及答案.doc
- CHP3.3随机变量的函数及其分布.ppt
- 《读心神探》and《lie to me》的微表情集心理.doc
- 《谢谢您老师》七一主题班会(教案).doc
- 高一物理必修1第一章x-t图像带答案.doc
- 《财经法规与会计职业道德》模拟考试题第1012套考试判卷及答案.doc
- 上海市宝山区2025-2026学年第一学期期末考试高三英语试卷(含答案).pdf
- 云南省普洱市镇沅县第一中学2025-2026学年高二上学期期中考试语文试题(含答案).pdf
- 天津市扶轮中学2025-2026学年高一上学期第一次月考英语试题(含答案).pdf
- 上海市杨浦区2026届高三一模英语试题(含答案).pdf
- 湖北省八校联考2025-2026学年高二上学期月考语文试题(含答案).pdf
- 山西省介休市第一中学校2025-2026学年高二上学期期中考试英语试卷(含答案,无听力原文及音频).pdf
- 江苏省无锡市梅村高级中学2025-2026学年高二上学期期中英语试题(含答案).pdf
- 山东省临沂市临沭县2025-2026学年九年级(上)期中化学试卷(含答案).pdf
- 山东省菏泽市2025-2026学年高二上学期期中考试英语(B)试卷(含答案,无听力原文及音频).pdf
- IPO审核耗时与首发股票市场表现.pdf
最近下载
- 精品课件-《菩萨蛮·书江西造口壁》(优质课课件用).ppt VIP
- 应用高等数学(第2版)练习册胡桐春课后习题答案解析.docx VIP
- 2025年连云港专业技术人员公共课程公需考试-学习贯彻党的二十届三中全会精神.docx VIP
- 标准作业流程心得体会范文.docx VIP
- DBJT 61-38-2016 建筑给水排水与采暖工程施工工艺标准.docx VIP
- 尿液干化学法检测尿液红细胞与白细胞假阴性结果分析.doc VIP
- 皖南医学院《马克思主义基本原理》2016-2017学年期末考试卷.pdf VIP
- 2023年四川省气象部门事业单位招聘考试真题.docx VIP
- 简约手绘工作概述商务汇报通用PPT模板.pdf VIP
- 2023年四川省气象部门事业单位招聘考试真题.docx VIP
原创力文档


文档评论(0)