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

《C语言程序设计d》课件_第六讲 指针.pptVIP

《C语言程序设计d》课件_第六讲 指针.ppt

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

*回顾数组在内存中的表示形式可以把数组地址赋值给指针变量,指针变量就指向了数组*指针指向数组有效元素之外时,也会发生访问错误*注意函数结束条件*也可以传递b[0]*需要注意,一维指针数组在没有初始化时,每一个素组元素指向的位置都不确定,不能直接使用*二位数组每一个行的地址相差固定值,即列数一维指针数组,每个元素指向的位置并不相差确定值,差值等于实际名字长度,因为常量字符串在内存中是连续存放的*第一个参数argv[0]是程序名Argc=1,至少有一个参数*带命令行参数的程序从控制台执行时可以传入参数也可以在DEVcpp中设置命令行参数**指针运算3.两个指针变量比较大小前提:两个指针变量指向同一个数组意义:得到两个指针之间的位置关系inta[10];int*p1=a,*p2=a[10];inti=0;while(p1p2){*p1=i;p1++;i++;}两个指针变量不在同一数组,比较没有任何意义p1指向a[0],p2指向a[10]通过指针p1依次给a的每个元素赋值i,循环结束条件是p1指向最后一个元素之后*指针运算4.对指针变量使用下标前提:指针变量指向数组意义:得到对应数组元素inta[10];int*p1=a;inti=0;for(i=0;i10;i++){p1[i]=i;}指针变量不指向数组时没有任何意义p1指向a[0]通过指针p1依次给a的每个元素赋值i,循环结束条件是i不超出数组元素个数p1[i]=p1+i×sizeof(a[0])西安电子科技大学计算机学院*访问数组元素的几种模式inta[10];inti;for(i=0;i10;i++){a[i]=i;}inta[10];int*p1,*p2;for(p1=a,p2=a+10;p1p2;p1++){*p1=i;}inta[10];int*p1,*p2;for(p1=a,p2=a;p1-p210;p1++){*p1=i;}inta[10];int*p1;for(p1=a;p1a+10;p1++){*p1=i;}西安电子科技大学计算机学院*取值运算符(*)和递增运算符(++)混合使用*和++优先级相同*和++都是右结合++有前缀和后缀两种形式前缀方式先自增再取值参与运算后缀方式先取值参与运算再自增取值运算符(*)和递增运算符(++)混合使用西安电子科技大学计算机学院*inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a,n;n=*p++;n=*++p;++*p;n=*p;p++;++p;n=*p;a[2]++;n=a[0]p指向a[1]p指向a[2]n=a[2]*数组参数与指针数组作为函数形式参数时,实际是以指针的形式实现doubleaverage(doublea[],intn){doublesum=0.0;inti;for(i=0;in;i++)sum+=a[i];returnsum/n;}doubleaverage(double*a,intn){doublesum=0.0;inti;for(i=0;in;i++)sum+=a[i];returnsum/n;}intmain(){intb[20]={…}average(b,20);return0;}传递的是数组首地址只对b[5]-b[10]求平均值如何处理??西安电子科技大学计算机学院*数组参数与指针doubleaverage(doublea[],intn){doublesum=0.0;inti;for(i=0;in;i++)sum+=a[i];returnsum/n;}doubleaverage(double*a,intn){doublesum=0.0;inti;for(i=0;in;i++)sum+=a[i];returnsum/n;}intmain(){intb[20]={…}average(b+5,5);return0;}

文档评论(0)

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

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

1亿VIP精品文档

相关文档