第6章 指针解析.ppt

  1. 1、本文档共130页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pscore = (int *) malloc(num * sizeof(int)); if (pscore == NULL ) { printf ( “Insufficient memory available\n” ); exit (0); } printf (“input the scores of students now:\n”); for (i = 0; i num; i++) scanf (“%d”, pscore + i); maxscore = pscore[0]; minscore = pscore[0]; sumscore = pscore[0]; for (i = 1; i num; i++) { if (pscore[i] maxscore) maxscore = pscore[i]; if (pscore[i] minscore) minscore = pscore[i]; sumscore = sumscore + pscore[i]; } averscore = (float)sumscore / num; printf (“--------------------------------------------\n”); printf (“the average score of the students is %.1f\n”,averscore); printf (“the highest score of the students is %d\n”,maxscore); printf (“the lowest score of the students is %d\n”, minscore); free (pscore); //释放动态分配的内存 } 本章小结 指针变量是专门存放地址的变量。 有关指针的数据类型: 定义p为一个指针,它指向一个指向整型数据的指针 int **p; 定义p为指向函数的指针,该函数返回一个整型值 int (*p)(); 定义f为返回一个指针的函数,该指针指向整型数据 int * f(); 定义指针数组p,它含有n个指向整型数据的指针元素 int *p[n]; 定义p为指向含n个元素的一维数组的指针 int (*p)[n]; 定义p为指向整型变量的指针 int *p; 含义 定义 本章小结 有关指针的运算 “”和”*”运算符 指针与函数 指针与数组 指向指针的指针(二级指针)是一个存放另一个指针变量地址的变量。 常用动态内存分配函数的使用 #include stdio.h void main() { int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11}; int i,j,*p[3]; p[0]=a[0]; p[1]=a[1]; p[2]=a[2]; for(i=0;i3;i++) { for(j=0;j4;j++) printf(“%4d”, *(p[i]+j)); printf(“\n”); } } 【例6.41】二维数组按行列输出。 指针数组的每一元素分别指向二维数组的每一行 第i行j列的值 11 10 9 8 7 6 5 4 3 2 1 0 a[0] a[0]+1 p[2] p[2]+1 #include stdio.h #define M 5 #define N 4 void main() { int a[M][N], *pa[M]={a[0],a[1],a[2],a[3],a[4]}; int i,j; float b[M],*pb=b,s; for (i=0;iM;i++) for (j=0;jN;j++) scanf(“%d”,pa[i][j]); //输入20个数给数组a 【例6.42】求二维数组a[M][N]各行的平均值,并将各行的平均值依次存放在数组b[M]中 。 for (i=0;iM;i++) { s=0; for(j=0;jN;j++) s=s+pa[i][j]; //求各行元素之和 pb[i]=s/N; //将各行元素的平均值存入数组pb } for(i=0;iM;i++) printf(“%2f”,pb[i]); } 【例6.43】将多个字符串按字典

文档评论(0)

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

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

1亿VIP精品文档

相关文档