首页 > 学院 > 开发设计 > 正文

二级指针

2019-11-17 05:47:29
字体:
来源:转载
供稿:网友
二级指针
实例效果与目的  这是一个应用二级指针对字符串排序的程序。程序运行后,顺序显示字符串。
程序说明  当一个指针变量指向另一个指针变量时,则形成二级指针。使用二级指针可以在建立复杂的数据结构时提供较大的灵活性,能够实现其他语言所难以实现的一些功能。定义二级指针的形式是:  类型标识符**二级指针变量名   定义指针的同时可以对其赋值,然后就可以使用了。  假如定义一个指针数组,则指针数组名就是一个二级指针。用指针数组元素值指向长度同的字符串,操作时可以节省内存空间,而对地址进行操作,提高了运行效率。  冒泡排序的思路是:对n个数据从第1位开始对相信两个数进行比较,并按要求排序(如从小到大)。再比较第2位与第3位,依次处理至最后两个数比较处理完毕。此时,最大的已排到最后,退出比较,进入下一轮比较,每一轮把最大的数排到最后较,至所有的数排列完毕。
制作步骤1、得到所须处理的字符串:for(i=0;i<N;i++) get(pstr[i]);2.冒泡排序:    void sort(char**p)      {         int i,j;         char *pstr;         for(i=0;i<N;i++)           for (j=i+1;j<N;j++)               if (strcmp(*(p+i),*(p+j))>0)                  {                         PRstr=*(p+j);                       *(p+j)=*(p+i);                       *(p+i)=pstr;                  }                 }3、显示排序后的结果     for(i=0;i<N;i++)            puts(pstr[i]);4、源代码与注释:#include“stdio.h"#include"string.h"#define LENGTH 30#define N 10void sort(char**p)  {  int i,j;  char *pstr;  void sort(char**p)      {
         int i,j;         char *pstr;         for(i=0;i<N;i++)           for (j=i+1;j<N;j++)               if (strcmp(*(p+i),*(p+j))>0)                  {                         prstr=*(p+j);                       *(p+j)=*(p+i);                       *(p+i)=pstr;                  }      }   main()     {         int i;         char *pstr[N],s[N][LENGTH];         for (i=0;i<N;i++)         pstr[i]=s[i];         printf(" Input %d strings: ",N);         for (i=0;i<N;i++)           gets(pstr);         sort(pstr);         printf(" The sorted string are: ");         for(i=0;i<N;i++)              puts(pstr[i]);         return;      } 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表