元素均为指针类型数据数组

元素均为指针类型数据数组

ID:20395736

大小:48.50 KB

页数:6页

时间:2018-10-12

元素均为指针类型数据数组_第1页
元素均为指针类型数据数组_第2页
元素均为指针类型数据数组_第3页
元素均为指针类型数据数组_第4页
元素均为指针类型数据数组_第5页
资源描述:

《元素均为指针类型数据数组》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、v元素均为指针类型数据的数组,称为指针数组v定义形式为:类型关键字*数组名[数组长度];v例如char*pStr[5];例main(){inti;charstr[][10]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i<5;i++){printf("%s",str[i]);}}例main(){inti;char*ptr[]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i<5;i++){printf("%s",ptr[i]);}}例:字符串按字典顺

2、序排序—二维数组编程例:字符串按字典顺序排序—指针数组编程char*ptr[N]={"Pascal","Basic","Fortran","Java","VisualC"};for(i=0;i

3、序执行时参数的数目(包括命令本身)argv[i]为指向第i个参数的字符指针这两个内设形参用于接收命令行参数例:演示命令行参数与main函数各形参之间的关系voidmain(intargc,char*argv[]){inti;printf("Theprogramnameis:%s",argv[0]);if(argc>1){printf("Theotherargumentsarefollowing:");for(i=1;i

4、据,也可以返回一个指针类型的数据,即地址。返回指针值的函数(简称指针函数)的定义格式如下:函数类型*函数名([参数表])例int*f(intx,inty)例求一维数组的最大值及其下标vint*findMax(intx[])v{vinti,j;vj=0;vfor(i=1;i<5;i++)vif(x[i]>x[j])vj=i;vreturn(&x[j]);v}vvoidmain()v{vinta[5]={3,6,1,9,12},*max;vmax=findMax(a);vprintf("max[%d]=%d",max-a,*max);v}五、多级指针和动态指针1.概念及定义2.动态指针

5、v为什么要动态分配内存?当事先不知道所需要处理的数据有多大时,使用静态数组,若数组开辟得太大,则浪费内存资源(甚至可能不成功);若开辟得太小,又不能满足计算需要。采用动态分配内存的方法,使用完毕,再释放内存,以备其它程序使用。C语言中提供了几个标准函数,以实现内存的分配和释放。动态分配内存v#includev#includevvoid*malloc(unsignedintsize);向系统申请大小为size的内存块,把首地址返回。如果申请不成功,返回NULLvvoid*calloc(unsignedintnum,unsignedintsize)

6、;向系统申请num个size大小的内存块,把首地址返回。如果申请不成功,返回NULLvvoidfree(void*p);释放由malloc()和calloc()申请的内存块。p是指向此块的指针vvoid*类型的指针可以指向任意类型的变量动态数组v一维动态数组int*p=NULL;printf("Pleaseenterarraysize:");scanf("%d",&n);p=(int*)malloc(n*sizeof(int));…p[i]//像使用一维数组一样使用…v二维动态数组printf("Pleaseenterarraysizem,n:");scanf("%d,%d",&m

7、,&n);p=(int*)calloc(m*n,sizeof(int));…p[i*n+j]);//像使用一维数组一样使用…函数指针(选学)1.函数指针的概念一个函数在编译时,被分配了一个入口地址,这个地址就称为该函数的指针。可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数2.指向函数的指针变量(1)定义格式函数类型(*指针变量)();注意:“*指针变量”外的括号不能缺,否则成了返回指针值的函数。例如,int(*fp)();/*fp为指向int函数的指针变

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。