c语言8课件.ppt

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

第八章 应用指针编制程序 8.1 指针概述 8.2 指针变量 8.3 指针与数组 8.4 指针与函数 8.5 指针数组 8.6 指向指针的指针;§ 8.1 指针概述;储备知识2——数据的存取过程;储备知识2——数据的存取过程; C 提供了另一种方式,将变量 k的地址存放在另一个变量处(假定为pk),通过访问 pk,就可以间接地访问变量k,这种方式称为间接访问。;3、间接访问:多次直接访问方式;;二、对指针的深入理解 ——指针可以指向所有类型的数据;4、指针指向指针:指针型指针(存放某指针的地址)。;§ 8.2 指针变量;二、 指针变量的初始化;变量必须与说明过的类型应一致;三、指针变量的引用 ;例1: 运用指针变量间接访问变量的值。 ;例3: 改变指针变量指向的变量的值。 ;#include stdio.h main( ) { int a=3,b=5; int *ptr1=a, *ptr2=b, *t; t=ptr1; ptr1=ptr2; ptr2=t; printf(ptr1: value %d\n,*ptr1); printf(ptr2: value %d\n,*ptr2); };四、指针变量的运算 ;2.与指针变量相关的其它运算;(2) 指针变量的减法运算 ;五、指针变量作函数的参数; swap(int *p1, int *p2) { int pk; pk=*p1; *P1=*P2; *p2=pk; printf(“2: %d,%d\n”, *p1, *p2); } main( ) { int a , b; int *po1,*po2; scanf(“%d,%d”,a,b); //a=3,b=5 printf(“1: %d,%d\n”,a,b);//3 5 po1=a,po2=b; if(ab) swap( po1,po2 ); printf(“3:%d,%d\n”,a,b); };9;1、 功能函数 swap(a,b)的作用是实现两个数的交换,当参数为指针 型时,实参,形参都为指针变量。 2、 当函数被调用时,实参值传给形参(值传递)结果为:形参指针p1,实参 指针po1指向同一个变量a。 3、 当函数调用结束时,交换的是指针所指的变量的 值。pk=*p1;*p1=*p2;*p2=pk;此时,pk是一个int 变量,不是指针。;一、 用指针引用数组元素;;main( ) { static int a [ ]={ 1,2,3,4,5,6}; int i; for(i=0;i6;i++) printf(“%d”,a[i ]); };;#include stdio.h main( ) { int n,a[10]; int *ptr=a; for(n=0;n=9;n++) scanf(%d,ptr++); printf(output!\n); for(n=0;n=9;n++) printf(%4d,*ptr++); printf(\n); };运行上述程序均可获得如下结果: 1 2 3 4 5 6 7 8 9 0 回车 output! 1 2 3 4 5 6 7 8 9 0;练习3:仔细阅读下面程序,分析指针的当前值。 main( ) { int i,*p,a[7]; p=a; for(i=0;i7;i++) scanf(%d,p++); printf(\n); for(i=0;i7;i++,p++) printf(%d,*p); };main( ) { int i,*p,t,a[5]; for(p=a;pa+5;p++) scanf(%d,p); printf(\n); p=a[0]; for(i=1;i5;i++) if (*pa[i]) {p=a[i];t=i;} printf(%d,%d,*p,t); };main() { int n,i,j,k,x,a[10]; int *p=a; for(i=0; i10;i++) scanf(%d,p+i); for(k=1;k10;k++) for(j=9,i=0;i10-k;i++,j--) if(*(p+j)*(p+j-1)) { x=*(p+j); *(p+j)=*

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档