第6章指针与引用.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章指针与引用

第6章 指针与引用;本章主要内容;§6.1 指针、变量及指针变量;变量与地址;变量与地址的关系; 指针:一个变量的地址。 指针变量:专门存放另一变量地址(即指针 )的变量。;; [存储类型] 基类型 *指针变量名;;指针变量的初始化 ;可以在定义之后、使用之前,给指针变量初始化 : int a,*p; //定义时未初始化指针变量 p=a; int *p=NULL; //定义时初始化指针为NULL。 表示p指向地址为0的单元,值为0的指针为空指针。 空指针不指向任何变量,不指向任何有效单元。 在不确定指针初值的情况下,为了安全起见,通常会把指针初始化为0。 ;指针变量的引用;#includeiostream using namespace std; int main( ) { int ia=12; //定义整型变量ia并初始化 int ib=45; //定义整型变量ib并初始化 coutia:ia,ia:iaendl; coutib:ib,ib:ibendl; int *ip1,*ip2; //定义指针变量*ip1,*ip2 ip1=ia; //把变量ia的地址赋给ip1 ip2=ib; //把变量ib的地址赋给ip2 coutip1:ip1,ip1:ip1,*ip1:*ip1endl; coutip2:ip2,ip2:ip2,*ip2:*ip2endl; return 0; };§6.2 数组与指针;指针法 定义一个指针变量指向数组元素的一般方法如下: int a[5]; //定义一个含有5个元素的整型数组a int *p; //定义指向整型变量的指针p p=a[0]; //将数组中第一个元素的地址赋值给p 由于数组名表示数组的首地址,可将以上语句改写为 int a[5]; int *p; p=a; //将数组名赋给指针变量 也可以在定义的同时为指针变量赋值 int *p=a[0]; 或 int *p=a;;指向数组的指针;数组元素的四种表示方法:;假设p指向数组a的首元素(即p=a),则: p++表示p指向下一个元素a[1],若要取得a[1]的值,可以写成 : p++; b=*p; 而 b=*(p++); *(p++)表示先将p的值(即地址)输出,与*结合得到p所指向变量的值,然后p的值(即地址)加1。所以得到的是a[0]的值. *p++表示先得到p所指向的变量的值,然后p的值(即地址)加1。 *(++p)与*(p++)是不同的,前者表示先将p的值(即地址)加1,再输出地址加1后所指向变量的值。 (*p)++表示p所指向的数组元素值加1 ;#includeiostream using namespace std; int a[]={0,1,2,3,4}; void main() { int i,*p; for(i=0;i=4;i++) couta[i]\t; coutendl; for(p=a[0];p=a[4];p++) cout*p\t; coutendl; for(p=a[0],i=1;i=4;i++) coutp[i]\t; coutendl; for(p=a,i=0;p+i=a+4;p++,i++) cout*(p+i)\t; coutendl; };指针数组;#includeiostream using namespace std; void main() { int *p[3],a=1,b=2,c=3; p[0]=a; p[1]=b; p[2]=c; cout*p[0]\t*p[1]\t*p[2]; }; = 指针的赋值运算。 int i,*p1,*p2,*p3,*p4,*p5; int array[20]; ;指针的算术运算:;指针的关系运算:表示其所指向的存储单元的相对位置。 若px和py指向同一数组,则 pxpy 表示px指的元素在前 pxpy 表示px指的元素在后 px= =py 表示px与py指向同一存储单元 px= =0 表示px为空指针? p= =NULL 若px与py不指向同一数组,比较无意义;§6.2.2 字符串与指针;#includeiostream using namespace std; void main() { char s[28]; char *p; cin.getline(s,27); //字符数组接受一行数据一个字符串的方式 p=s; while(*p!=\0) p++; cout字符串s的长度是:p-sendl; };字符指针表示形式;§6.3 函数与指针;#includeiostream using

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档