c++指针,引用和结构体分析.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c指针,引用和结构体分析

实验 掌握指针与数组、指针与函数的关系及应用。 初步掌握引用的概念及简单应用。 第一部分 教程练习: 1.上机实验题一 观察程序运行结果,学习指针的基本运算。 ⑴分析 变量和数组元素的地址都可以赋给一个指针,一个指针可以加上或减去一个整数;在两个指针指向同一数组不同元素时,可以进行减运算,结果为其间的数组元素个数。 一个完整的参考程序如下: #includeiostream.h void main() { int i,a[10]; int *p1,*p2; p1=a; //A p2=p1+5; for (i=0;i=9;i++) { a[i]=i*i; couta[i]=a[i]endl; } couta=aendl; //B coutp1=p1,p2=p2endl; coutp2-p1=p2-p1endl; cout*p2-*p1=*p2-*p1endl; //C } ⑵上机要求 将程序中A行改为“p1=a[0]”观察程序运行结果。 将程序中B行改为“cout*a=*aendl;”观察程序运行结果。 将程序中C行改为“couta[5]-a[0]= a[5]-a[0]endl;”观察程序运行结果。 (3)对以上结果写出实验分析: 将程序中A行改为“p1=a[0]”,结果不变,因为“a”和“a[0]”都表示数组的首地址。将程序中B行改为“cout*a=*aendl;”a是a[0]的地址,*a是元素a[0]的值,即为0。将程序中C行改为“couta[5]-a[0]= a[5]-a[0]endl;”因为a[0]和*p1等价,a[5]和*p2等价,故结果不变。 ⒉上机实验题二 指出下列程序的错误。 #include iostream.h void exchange(int,int); void main() { coutInput two data seprated by space:; int a,b; cinab; coutBefore Exchange:a=a,b=bendl; exchange(a,b); coutAfter Exchange:a=a,b=bendl; } void exchange(int x,int y) { int t; t=x;x=y;y=t; } ⑴分析 本例的目的是在子函数中交换的两个变量的值,在主函数中使用。但函数的数据传值调用方式是将实参的数据值传递给形参,实参和形参在内存中占用不同的地址单元,改变形参值不改变实参值。要想通过改变形参的值而改变实参的值,则应使用指针调用或引用调用。而且引用调用大有取代指针调用之势。 使用指针调用如下: #include iostream.h void exchange(int*,int*); void main() { coutInput two data seprated by space:; int a,b,*p1=a,*p2=b; cinab; coutBefore Exchange:a=a,b=bendl; exchange(p1,p2); coutAfter Exchange:a=a,b=bendl; } void exchange(int *x,int *y) { int t; t=*x;*x=*y;*y=t; } 使用引用调用如下(待讲完引用再做): #include iostream.h void exchange(int,int); void main() { coutInput two data seprated by space:; int a,b; cinab; coutBefore Exchange:a=a,b=bendl; exchange(a,b); coutAfter Exchange:a=a,b=bendl; } void exchange(int x,int y) { int t; t=x;x=y;y=t; } ⑵上机要求 分别输出三个程序中形参和输出变量的地址。 (3)写出实验分析及结果 第一种方法的形参,实参的地址不同,交换的只是指针指向,故不能实现实参的交换。,的是实参的值第三种,交换的也是实参的值。 自定义函数实现字符串的拷贝。 ⑴分析 字符串不允许进行赋值运算,只能使用头文件string.h中定义的strcpy()库函数。本例要求自己编制一个自定义函数实现strcpy()库函数的功能。 一个完整的

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档