第14章 基于指针的学生成绩(一).ppt

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

main( ) { int num1,num2,tmp; int *p1,*p2; p1=num1,p2=num2; printf(请输入两个整数:\n); scanf(%d,%d,p1,p2); printf(“交换前:num1=%d,num2=%d\n”,*p1,*p2); tmp=*p1; *p1=*p2; *p2=tmp; printf(交换后:num1=%d,num2=%d\n,*p1,*p2); } main( ) { float n1, n2, n3; float average, max; float *avg; avg=average; printf(请输入三个float数据:); scanf(%f%f%f, n1, n2, n3); *avg = ( n1 + n2 + n3 ) / 3 ; if ( n1 n2 ) max = n1; else max = n2; if ( max n3 ) max =n3; printf(max = %f\naverage=%f\n, max, average); } #include stdio.h main( ) { int i = 0; int tmp,score[10]; //tmp用于暂时存放录入的成绩 int *ps; ps=score; printf(请输入学生的成绩(以-1结束输入):\n); do{ printf(第%d个学生:, i+1); scanf(%d,tmp); if(tmp = 0 tmp = 100) //判断成绩是否有效 { *(ps + i) = tmp; //为数组元素score[i]赋值 i++; } } while(tmp != -1 i 10); } main( ) { int i,tmp, a[ ]={17,55,34,68,91,70,65,77}; int *p,*q; p=a,q=a[7]; for(;pq;p++,q--) {tmp=*p; *p=*q; *q=tmp;} for(i=0;i8;i++) printf(%d,,a[i]); } *** 例:指针算术运算 main( ) {int *p1,*p2,*p3; int a [2]={0,1},b[3]={2,3,4}; p3=p1=a;p2=b; printf(“%u\t”,p1); printf(“%d\t”,*p1++); printf(“%u\t”,p1); printf(“%d\t”,*p1); printf(“%d\t”,p1-p3); printf(“%d\t”,*(p2=p2+2)); printf(“%d\t”,*--p2);} 解:指针p1和p3,p2通过p3=p1=a;p2=b;指向数组a,b 编译系统分配数组地址时会连续给a分配2*2=4个内存单元,给b分配3*2=6个内存单元.*p1++由于++是后缀.因此先调用*p1即a[0]元素输出后,再执行p1++,此时 p1指向a数组下一个元素即a[1]; 此时运算p1-p3为1;执行p2=p2+2;p2指向数组b第三个元素,即b[2];*--p2 先执行--p2,p2指向元素b[1], 再执行*p2即为b[1].共输出结果 65494 0 65496 1 1 4 3 ***注意:指针加1并不等于地址加1,当指针指向整型变量时,一个元素占两个字节,指针加1相应地址加2,而只是两个指针之间数据个数,即p1-p3并不是以地址为单位,而是以所指对象的大小为计算单位,本例p1,p2,p3代表地址,输出结果中第1个和第3个值每次运行都可能不同. /*通过指针访问,输出数组元素*/ #include stdio.h #define NUM 5 int main( ) { int a[ ] = {86, 57, 93, 76, 80}; int *p; int i; p = a; for ( i = 0 ; i NUM ; i++) { printf(Element %d is %d\n, i, *(p + i)); } retu

文档评论(0)

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

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

1亿VIP精品文档

相关文档