二级指针的应用
简单应用:对指针数组中的字符串进行排序(升序);
1、交换指针变量的值;
(1)、代码如下:
#include<stdio.h>#include<string.h>voidsortByA(char**str,intcount);voidsortByA(char**str,intcount){inti;intj;char*tmp;for(i=0;i<count;i++){for(j=i+1;j<count;j++){if((strcmp(*(str+i),*(str+j)))>0){//交换的是指针变量;tmp=*(str+i);*(str+i)=*(str+j);*(str+j)=tmp;}}}}intmain(void){char*array[]={"aaaa","bbbb","ccccc","dddd"};intcount=sizeof(array)/sizeof(array[0]);inti;sortByA(array,count);for(i=0;i<count;i++){printf("%s",array[i]);}printf("\n");}
(2)、运行结果:
(3)、模型分析:
指针变量的交换:中间借助一个临时的指针变量即可;
2、交换空间的值
(1)、代码如下:
#include<stdio.h>#include<string.h>voidsortByA(char(*p)[30],intcount);voidsortByA(char(*p)[30],intcount){inti;intj;chartmp[30];for(i=0;i<count;i++){for(j=i+1;j<count;j++){if((strcmp(p[i],p[j])>0)){strcpy(tmp,p[i]);//内存块的拷贝strcpy(p[i],p[j]);strcpy(p[j],tmp);}}}}intmain(void){charmyArray[][30]={"aaaaa","bbbbb","cccc","dddddd"};inti;intcount;count=sizeof(myArray)/sizeof(myArray[0]);sortByA(myArray,count);for(i=0;i<count;i++){printf("%s",myArray[i]);}printf("\n");return0;}
(2)、运行结果:
(3)、模型分析:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。