• 【C】交换值


    交换 int a, int b:                           |     交换 int *p, int *q 的地址                                                                                                           

    void ( int *a, int *b)                        |      void( int **p, int **q)                                                                                                   

    {                                                   |      {                                                                                                               

      int temp ;                                 |          int *temp;                                                                                                                       

      temp = *a;                               |              temp = *p;                                                                                                                         

      *a = *b;                                   |              *p = *q;                                                                                                              

      *b = temp;                               |               *q = temp;                                                                                                                 

      return ;                                    |                return ;                                                                                                        

    }                                                   |        }                                                                                                                                           

                                                        |

    案例:用指向指针的指针的方法对5个字符串排序并输出(题源:C程序设计(第四版)谭浩强,清华大学出版社,第292页)。

    代码:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 
     5 
     6 void sswap( char **s, int i, int j)
     7 {
     8     char *temp;
     9     temp = s[i];
    10     s[i] = s[j];
    11     s[j] = temp;
    12     return ;
    13 }
    14 
    15 /*select sort*/
    16 void ssort(char **s, int n)
    17 {
    18     extern void sswap(char **s, int i, int j);
    19     int i,j;
    20     char *temp;
    21     for(i=0;i<n;i++)
    22     {
    23         for(j=i;j<n;j++)
    24         {
    25             if(strcmp(s[i],s[j]) > 0)
    26             {
    27                 sswap(s,i,j);
    28             }
    29         }
    30     }
    31     return;
    32 }
    33 
    34 
    35 /*test*/
    36 int main()
    37 {
    38     char **s = (char **)malloc(sizeof(char*)*5);
    39     int i;
    40     for(i=0;i<5;i++)
    41     {
    42         *(s+i) = (char*)malloc(sizeof(char)*100);
    43     }
    44     s[0] = "hello";
    45     s[1] = "world";
    46     s[2] = "eweli";
    47     ssort(s,3);
    48     for(i=0;i<3;i++)
    49     {
    50         printf("%s
    ",s[i]);
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    微软Blazor组件发布,DevExpress v19.1.8中可用:Charts新功能
    数据管理必看!Kendo UI for jQuery过滤器概述
    项目管理工具!DevExpress Winforms Gantt控件 v19.2强势来袭
    WPF界面开发:DevExpress WPF在GridControl中固定行时处理时刻
    bash文件操作之批量修改文件格式与重命名——二合一完美版
    ubuntu 查看文件编码并进行批量编码修改
    文件批量重命名
    Scanf--数据第一个字符是西文字符的scanf函数
    markdown格式速查
    markdown样式速查
  • 原文地址:https://www.cnblogs.com/yongjiuzhizhen/p/4339917.html
Copyright © 2020-2023  润新知