- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
思考题L
思考题
本组成员:宇洁 倩君
朝萍 娇娇
(以上排名不分先后)
一、简答类:
为什么先定义的自动局部变量的地址大?
自动局部变量存储在动态存储区的栈空间中,栈底的地址值最大,栈顶的地址值最小。
由于栈空间按后进先出的方式管理,即先定义的自变量存储在栈底,后定义的自变量存储在栈顶,因而先定义的自变量地址大。
printf函数调用时, 其中的格式控制串与后面的参数应当一一对应, 为什么格式控制串个数少于后面的参数个数时,%开头的控制串会被忽略? 但是当格式控制串个数多于后面的参数个数时,会有输出?多余的输出结果是什么,有没有遵循什么规律?
格式控制串个数少于后面的参数个数时,则printf从左向右扫描%,发现一个%就将一个对应变量转换成相应的格式,多出的参数忽略;当格式控制串个数多于后面的参数个数时,会输出,多余的输出情况如下:
%d-------------2367460
%c--------------?
%f---------------0.000000
%x--------------241fe4
(根据系统而定)
3、相邻的局部变量的地址差值为多少?根据什么来确定?
相邻的局部变量的地址差值为sizeof(类型),因类型不同而不同
4、同一个程序在不同编译器(比如VC或TC)下第一个变量的地址是否相同,均为ox12ff7c?如果相同,为什么?如果不同,为什么?
不同。
根据堆栈的知识可知,系统的第一个变量的地址应该是ox12ff7c+sizeof(类型)。VC——对应的是32 位,而TC——对应的是16位,所以即使是同一种类型的变量,在不同的编译器下,其所占空间是不一样的,就以int为例,在VC下占4个字节,在TC下占两个字节,因此,对应的第一个变量的地址也就不一样。
为什么指针变量占4字节,指针变量所占空间大小取决于什么?为什么与基类型无关?
指针变量代表一个存储单元地址,占用存储单元一般为4个字节-即一个存储单元,(32位计算机)。与其基类型数组无关,因为它仅代表一个地址。如果一个变量占用多个单元,使用还是第一个字节的地址为变量地址。因此,指针变量的都用4个字指针变量占用的存储单元与编译器有关。16位计算机为2个字节,32位计算机为4个字节。与基类型无关。
int a,b; (2)a=10;b=12; a=10;b=12;a=b-a; //a=2;b=12 a=b/a;
b=b-a; //a=2;b=10 b=b/a;a=b+a; //a=12;b=10 a=b*a;
2.异或法
a=10,b=12; //a=1010^b=1100;a=a^b; //a=0110^b=1100;b=a^b; //a=0110^b=1010;a=a^b; //a=1100=12;b=1010;
8、教材117页中说到:“复合语句相当于一个无返回值和参数列表为空的函数,复合函数体就是这个函数体。”这个描述是否正确,请给出正确或不正确的理由。
总结一下变量的生命期与作用域的关系(综合第六、七章的知识)。
首先简单说说各类型变量。
1:自动型(auto型):此变量是在函数内部定义的一种变量,它局限于该函数或所在的函数,故也称为局部变
量, 更加确切的说定义在某一对花括号之内,生命起始终止于这个大括号;
2:外部型(extern):此变量又称为外部变量,是一种全局变量,在函数之外定义,
3:寄存器型(register)又称为寄存器型变量,只有int ,short,char类型的变量才能定义为寄存器型变量,它只适用于auto型变量和函数的形式参数,所以它只有在函数内定义,并且作用域和生命周期同auto一样 .
4:静态型(static):分为内部静态变量和外部静变量;内部静态变量同auto变量,也是在函数内部定义,它局限于定义它的函数,但是在退出函数的时候并部消失,而是在整个程序中都存在;用一句话说就是,内部静态变量的可见性和全局的生命期;外部静态变量:是在函数外部定义的变量,作用域是定义它的源文件,即对定义它的源文件是全程知道的 ;对源文件之外的文件是部可见的;
√ × × 是 生存期 一次函数调用过程 √ × × 静态局部变量(内部静态变量) 作用域 本函数体内 √ × × 否 生存期 第一次执行其定义语句到程序结束 √ √ √ 寄存器变量 作用域
同自变量 √ × × 是 生存期 √ × × 文件作用域的外部变量(外部静态变量) 作用域 本
您可能关注的文档
最近下载
- 第四章战国、秦、汉、三国时期的建筑详解.ppt VIP
- T_HAEPCI 55—2023(有色冶炼场地土壤-地下水重金属污染协同修复与管控技术指南).pdf VIP
- 青春筑梦婴幼儿托育服务与管理专业启航未来职业生涯.pptx VIP
- 【新教材】2025-2026学年统编版(2024)三年级道德与法治上册第1课《学习伴我成长》课件.pptx
- T ACEF 111—2023 焦化污染土壤多环芳烃生物修复智能监测预警技术指南.pdf VIP
- MTT 114-2005 煤矿用多级离心泵.pdf VIP
- TACEF 112-2023 焦化污染土壤多环芳烃生物修复智能监测设备配置技术指南.pdf VIP
- GBT18479-2001 地面用光伏(PV)发电系统 概述和导则.pdf
- 低血容量性休克的护理.pptx VIP
- 2《住宅项目规范》宣贯培训-第3章.pdf
文档评论(0)