- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 指针和引用
6.1 你觉得以下程序将显示什么结果?实际运行以下程序,观察并解释为什么出现这样的结果。
#include iostreamusing namespace std
void main()
{ int va1=100;
int *pva1=va1;
int *pva2;
coutpva1 *pva1endl;
coutpva2 *pva2endl;
}
答案:
屏幕先显示指针pva1 的值和指针所指向的整型数:“0x0012FF7C 100”。
然后出现错误信息:“应用程序错误 0x004010a0指令引用的0xcccccccc内存。该内存不
能为read。”
原因:指针pva2 没有初始化,其中的地址值0xcccccccc 属于内存中不可以访问的区域。因
此,出现运行错误。
6.2 以下程序在VC 环境下编译运行时,出现什么结果?
#include iostreamusing namespace std
void main()
{ int vi=53;
int* iPtr=vi;
float* fPtr=vi;
iPtr=fPtr;
cout vi endl
iPtr: iPtr = *iPtr endl
fPtr: fPtr = *fPtr endl endl;
}
答案:
程序在编译时出现两个错误,分别在第6 行和第7 行。
第6 行的错误信息是:“error C2440: initializing : cannot convert from int * to float *
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style
cast”
第7 行的错误信息是:“error C2440: = : cannot convert from float * to int * Types
pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast”
错误性质都是指针类型的不一致和不能自动转换。
此习题说明:不同类型的指针是不能互相赋值的。
6.3 从键盘输入三个整型数va、vb、vc,通过一个指向整型的指针iptr,输出三个数中的最大值。
编写相应的程序。
答案:
参考程序如下:
#include iostream
using namespace std;
void main()
{ int va,vb,vc;
int* iptr;
cinvavbvc;
if(vavb) iptr=va;
else iptr=vb;
if(vc*iptr) iptr=vc;
coutThe largest number is *iptrendl;
}
6.4 以下程序中调用了4 次strcpy 函数,请问哪些调用在运行时会出现错误?为什么?
#include iostream
using namespace std
#include cstring
void main()
{ char *s1 = String01;
char *s2 = String02;
char s3[ ]=String03;
char s4[ ]=String04;
strcpy( s1, s2 );
couts1endl;
strcpy( s3, s4 );
couts3endl;
strcpy( s3, s2 );
couts3endl;
strcpy( s1, s4 );
couts1endl;
}
答案:
程序可以通过编译,没有编译错误。
但是在运行时会出现运行错误:“0指令引用的0x0042f040 内存。该内存不能为
written。”
错误是在调用函数strcpy( s1, s2 )时出现的。因为s1 是用字符串常量来初始化的,不可以通
过copy 来改变常量的内容,也就是不可以written。
由于程序已经中止,另外一处运行错误就没有显示。实际上在调用函数strcpy( s1, s4 )也会
看到类似错误,原因也是相同的。
6.5 编写一个函数get_average 整型数组元素的平均值。要求这个函数既可以用来求一维数组元
素的平均值,也可以求二维数组元素的平均值。编程实现这个函数。并且在main 函数中通过具
体的一维数组Array_1D 和二维数组Array_2D,测试这个函数。
答案:
相应的函数和测试程序如下:
#include iostream
using namespace std;
float GetAverage
您可能关注的文档
- 语音技术前沿与应用07.ppt
- 语音信号处理 第八篇.ppt
- 语音信号处理12235135.docx
- 语音信号处理第2篇.ppt
- 预防接种反应与处理.doc
- 预防医学测试题与答1.doc
- 运27第13篇习题.doc
- 运筹学试题与答案11.doc
- 运动控制-第二篇.ppt
- 运动系统概述与躯干骨.ppt
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
文档评论(0)