欢迎来到天天文库
浏览记录
ID:40214956
大小:644.81 KB
页数:23页
时间:2019-07-26
《指针指针数组、多级指针、动态指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1数组指针——以此类推一维数组名是“列指针类型”----“元素指针类型”指针变量的定义:int*p;二维数组名是“行指针类型”指针变量的定义:int(*p)[4];三维数组名是“页指针类型”指针变量的定义:int(*p)[3][4];四维数组名是“块指针类型”指针变量的定义:int(*p)[3][4][5];圆括号是必须的2问题的提出变量是用于存放单个数据的数组是用于存放“同类型”的多个数据的方便循环控制结构的编程指针变量是用于存放单个地址号的“同类型”的多个地址号是否能够集中存储在一起构成“指针数组”呢?3元素均为指针类型数据的数组,称为指针数组定义形式
2、为:类型关键字*数组名[数组长度];例如char*pStr[5];pStr[5]*char四、指针数组注意没有圆括号4例:二维字符数组voidmain(){inti;charstr[][10]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i<5;i++){printf("%s",str[i]);}}strstr[0]Pascalstr[1]str[2]str[3]BasicFortranJava二维数组VisualCstr[4]5例:字符指针数组voidmain(){inti;char*p
3、tr[]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i<5;i++){printf("%s",ptr[i]);}}ptr[0]Pascalptr[1]ptr[2]ptr[3]BasicFortranJavaptr指针数组字符串ptrVisualCptr[4]6例:字符串按字典顺序排序—二维数组编程charstr[N][10]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i4、){if(strcmp(str[j],str[i])<0){strcpy(temp,str[i]);strcpy(str[i],str[j]);strcpy(str[j],temp);}}}strstrstrstrstrstrstrstrstrstr7例:字符串按字典顺序排序—指针数组编程char*ptr[N]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i5、ptr[i]=ptr[j];ptr[j]=temp;}}}指针数组ptr字符串排序前Pascal Basic Fortran Java VisualC ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]指针数组ptr字符串排序后Pascal Basic Fortran Java VisualC ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]8命令行参数main()函数既可以是无参函数,也可以是有参的函数.向其传递参数,只能由程序之外传递而来.main(intargc,char*argv[])当你把main函数写成6、这样时argc的值为程序执行时参数的数目(包括命令本身)argv[i]为指向第i个参数的字符指针这两个内设形参用于接收命令行参数通过命令行参数,使用户可以根据需要来决定我们的程序干什么、怎么干9例:演示命令行参数与main函数各形参之间的关系voidmain(intargc,char*argv[]){inti;printf("Theprogramnameis:%s",argv[0]);if(argc>1){printf("Theotherargumentsarefollowing:");for(i=1;i7、n",argv[i]);}}getch();}argv[0]echo.exeargv[1]argv[2]helloworldptr指针数组字符串name10指针型函数一个函数可以返回一个int型、float型、char型的数据,也可以返回一个指针类型的数据,即地址。返回指针值的函数(简称指针函数)的定义格式如下:函数类型*函数名([参数表])例int*f(intx,inty)11例求一维数组的最大值及其下标int*findMax(intx[]){inti,j;j=0;for(i=1;i<5;i++)if(x[i]>x[j])j=i;return(&x[j]8、);}voidmain(){inta[5]={3,6,1,9,12
4、){if(strcmp(str[j],str[i])<0){strcpy(temp,str[i]);strcpy(str[i],str[j]);strcpy(str[j],temp);}}}strstrstrstrstrstrstrstrstrstr7例:字符串按字典顺序排序—指针数组编程char*ptr[N]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i5、ptr[i]=ptr[j];ptr[j]=temp;}}}指针数组ptr字符串排序前Pascal Basic Fortran Java VisualC ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]指针数组ptr字符串排序后Pascal Basic Fortran Java VisualC ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]8命令行参数main()函数既可以是无参函数,也可以是有参的函数.向其传递参数,只能由程序之外传递而来.main(intargc,char*argv[])当你把main函数写成6、这样时argc的值为程序执行时参数的数目(包括命令本身)argv[i]为指向第i个参数的字符指针这两个内设形参用于接收命令行参数通过命令行参数,使用户可以根据需要来决定我们的程序干什么、怎么干9例:演示命令行参数与main函数各形参之间的关系voidmain(intargc,char*argv[]){inti;printf("Theprogramnameis:%s",argv[0]);if(argc>1){printf("Theotherargumentsarefollowing:");for(i=1;i7、n",argv[i]);}}getch();}argv[0]echo.exeargv[1]argv[2]helloworldptr指针数组字符串name10指针型函数一个函数可以返回一个int型、float型、char型的数据,也可以返回一个指针类型的数据,即地址。返回指针值的函数(简称指针函数)的定义格式如下:函数类型*函数名([参数表])例int*f(intx,inty)11例求一维数组的最大值及其下标int*findMax(intx[]){inti,j;j=0;for(i=1;i<5;i++)if(x[i]>x[j])j=i;return(&x[j]8、);}voidmain(){inta[5]={3,6,1,9,12
5、ptr[i]=ptr[j];ptr[j]=temp;}}}指针数组ptr字符串排序前Pascal Basic Fortran Java VisualC ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]指针数组ptr字符串排序后Pascal Basic Fortran Java VisualC ptr[0]ptr[1]ptr[2]ptr[3]ptr[4]8命令行参数main()函数既可以是无参函数,也可以是有参的函数.向其传递参数,只能由程序之外传递而来.main(intargc,char*argv[])当你把main函数写成
6、这样时argc的值为程序执行时参数的数目(包括命令本身)argv[i]为指向第i个参数的字符指针这两个内设形参用于接收命令行参数通过命令行参数,使用户可以根据需要来决定我们的程序干什么、怎么干9例:演示命令行参数与main函数各形参之间的关系voidmain(intargc,char*argv[]){inti;printf("Theprogramnameis:%s",argv[0]);if(argc>1){printf("Theotherargumentsarefollowing:");for(i=1;i7、n",argv[i]);}}getch();}argv[0]echo.exeargv[1]argv[2]helloworldptr指针数组字符串name10指针型函数一个函数可以返回一个int型、float型、char型的数据,也可以返回一个指针类型的数据,即地址。返回指针值的函数(简称指针函数)的定义格式如下:函数类型*函数名([参数表])例int*f(intx,inty)11例求一维数组的最大值及其下标int*findMax(intx[]){inti,j;j=0;for(i=1;i<5;i++)if(x[i]>x[j])j=i;return(&x[j]8、);}voidmain(){inta[5]={3,6,1,9,12
7、n",argv[i]);}}getch();}argv[0]echo.exeargv[1]argv[2]helloworldptr指针数组字符串name10指针型函数一个函数可以返回一个int型、float型、char型的数据,也可以返回一个指针类型的数据,即地址。返回指针值的函数(简称指针函数)的定义格式如下:函数类型*函数名([参数表])例int*f(intx,inty)11例求一维数组的最大值及其下标int*findMax(intx[]){inti,j;j=0;for(i=1;i<5;i++)if(x[i]>x[j])j=i;return(&x[j]
8、);}voidmain(){inta[5]={3,6,1,9,12
此文档下载收益归作者所有