网站大量收购独家精品文档,联系QQ:2885784924

两指针变量相减.ppt

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

面向对象程序设计;第三章 指针和引用;3.1 指针 ;;……; 指针定义:类型 *指针名1, *指针名2,…; 例: int *ip1,ip2; char *pc; double *dp1,dp2; char (*pa)[3];//指向一维数组的指针 ip1是一个指向整型变量的指针变量,而ip2则是一个整型变量,而不是指针。 ;指针的赋值 ;下面的定义以及对两个指针pi和pi2的赋值都是合法的。 int ival=1024; int *pi=0; //pi被初始化为没有指向任何对象 int *pi2=ival; //pi2被初始化为ival的地址 pi=pi2; //ok:pi和pi2现在都指向ival pi2=0; //现在pi2没有指向任何对象 指针不能持有非地址值。例如,下面的赋值将导致编译错误: pi=ival; //错误:pi被赋以int值ival;指针不能被初始化或赋值为其它类型对象的地址值。例如,已知如下定义: double dval; double *pd=dval; 那么,下面两条语句都会引起编译时刻错误: pi=pd; //无效的类型赋值:int *=double * pi=dval;;3.1.2 指针的运算 ;注意:指针运算符*和指针变量说明中的指针说明符*?不是一回事。在指针变量说明中,“*”是类型说明符,而表达式中出现的“*”则是一个运算符,用以表示取指针变量所指的变量的内容。 void main(){ int a=5,*p=a; cout*p; };指针变量的运算;④把数组的首地址赋予指向数组的指针变量。例如:? int?a[5],*pa; pa=a;?//数组名表示数组的首地址,故可赋予指向数组的指针变量pa ⑤把字符串的首地址赋予指向字符类型的指针变量。例如: char?*pc; pc=C?language;或用初始化赋值的方法写为:char?*pc=C?Language; ⑥把函数的入口地址赋予指向函数的指针变量。例如: int?(*pf)(); pf=f;?//f为函数名;(2)地址加减算术运算; 两指针变量相减 ;;例3.1 #include iostream.h void main() { int a=10,b=20,s,t,*pa,*pb; pa=a; pb=b; s=*pa+*pb; t=*pa**pb; couts=sendlt=tendl; };3.1.3指针的应用及注意的问题 ;3.2 引用 ;类型引用名(变量名); 或者 类型引用名=变量名; 引用类型用类型标识符和一个取地址操作符来定义,引用必须被初始化。 例: int a=3; //int m(a); int m=a; m=m+5; ;例: int ival=1024; int refval=ival; //refval是一个指向ival的引用 int refval2; //错误:引用必须被初始化为指向一个对象 虽然引用也可以被用作一种指针,但是相对指针那样用一个对象的地址来初始化引用却是错误的。 int ival=1024; int refval=ival; //错误:refval是int类型,不是int* int *pi=ival; int *refptr=pi; //ok:refptr是一个指针的引用 一旦引用已经定义,它就不能再指向其他的对象(这是它为什么必须被初始化的原因)。 ;每个引用的定义都必须以取地址操作符开始 int ival=1024,ival2=2048; //定义两个int类型的对象 int rval=ival,rval2=ival2; //定义一个引用和一个对象 int ival3=1024,*pi=ival3,ri=ival3; //定义一个对象、一个指针和一个引用 int rval3=ival3,rval4=ival2; //定义两个引用 ;#include iostream.h void main() { int val(5);//val的初值为5 int refv=val; refv=refv+5; coutvalendl; int *p=refv,val1(refv);//vall是整型变量,初值为refv的值。 cout*p\tval1endl; } ;3.3 指针与引用的区别 ;2.指针与引用的另一个重要的不同是指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对象,以后不能改变。 #include iostream.h void main() { char s1=N; char s2=C; char rs = s1

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档