数学指针进阶实用教案.pptx
上传人:王子****青蛙 上传时间:2024-09-13 格式:PPTX 页数:59 大小:395KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

数学指针进阶实用教案.pptx

数学指针进阶实用教案.pptx

预览

免费试读已结束,剩余 49 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

qsort()函数(hánshù)qsort()函数(hánshù)使用一、对整型数组排序(páixù)整型数组排序(páixù)练习二、对char类型(lèixíng)数组排序(同int类型(lèixíng))三、对double类型(lèixíng)数组排序关于数组的两个事实:(1)c语言(yǔyán)只有一维数组,而数组的元素可以是任何类型的对象,比如是一个数组。(2)对于数组,我们只能做两件事:获取数组的大小、获取下标为0的元素的地址。有关数组的所有操作,都是通过指针进行的,虽然看似是通过下标进行的。数组名a代表(dàibiǎo)下标为0的元素的地址,但不仅仅如此下标运算(yùnsuàn)的本质二维数组的本质(běnzhì)inta[3][3];一个int型数据占4个字节(zìjié),若a[0][0]的地址是2010,问a[1][2]的地址是多少?a[i][j]的地址是多少?上例中能否(nénɡfǒu)把二维数组名a赋给p?7.4.2二维数组的指针(zhǐzhēn)a[0]、a[1]、a[2]是一维数组名所以(suǒyǐ)a[i]+j是数组元素a[i][j]的地址。数组元素(yuánsù)可用下列形式表示:a[i][j]、*(a[i]+j)、*(*(a+i)+j)(4)指向一维数组的指针变量(biànliàng)(注意:是指向数组,不是指向数组元素【例7.14】用指向(zhǐxiànɡ)一维数组的指针变量输出数组元素。main(){inta[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}};int(*lp)[4],i,j;for(lp=a,i=0;i<3;i++){for(j=0;j<4;j++)printf(“%4d”,*(*(lp+i)+j));//也可以写成p[i][j];printf("\n");}}7.4.3指针(zhǐzhēn)数组的概念例7.15动态申请(shēnqǐng)和释放二维数组方法(fāngfǎ)1:用动态一维数组的方法(fāngfǎ)存储二维数组#include<stdio.h>#include<stdlib.h>intmain(){inti,j,m,n;int*p;scanf("%d%d",&m,&n);p=(int*)malloc(m*n*sizeof(int));for(i=0;i<m;i++)for(j=0;j<n;j++)scanf("%d",p+i*n+j);//scanf("%d",&p[i*n+j]);for(i=0;i<m;i++){for(j=0;j<n;j++)printf("%d",p[i*n+j]);printf("\n");}}方法(fāngfǎ)2:用指针数组实现详细(xiángxì)实现程序运行输出结果(jiēguǒ)如下:123456789101112课堂练习2.以下程序的输出(shūchū)结果是()。intmain(){charch[2][5]={“6937”,“8254”},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>’\0’;j+=2)s=10*s+p[i][j]-’0’;printf("%d\n",s);}A)69825B)63825C)6385D)6938253若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元素的正确(zhèngquè)引用形式是A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+34以下程序将输出(shūchū)的字符是()。#include"stdio.h"intmain(){charc;char(*p)[3];chars[2][3]={’a’,’b’,’c’,’d’,’e’,’f’};p=&s[0];c=*(p[1]+1);printf("%c",c);}A)bB)dC)eD)f7.4.4.用指针(zhǐzhēn)数组处理多个字符串指针(zhǐzhēn)数组char*pcolor[]={"red","blue","yellow","green","purple"};例7.16字符串排序(páixù)(1)多个(duōɡè)字符串排序intmain(void){inti,k;chartemp[7];charcolor[5][7]={"red","blue","yellow","green","purple"};for(i=1;i<n;i++)for(j=0;j<n-i;j++)if(strc