欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

模擬qsort實現(xiàn)冒泡排序

1.數(shù)組指針
數(shù)組指針是指針,指針指向數(shù)組,其內(nèi)部保存的是數(shù)組的地址,只要是指針,就占4個字節(jié)。
比如:

創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、金東網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為金東等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

      int arr[5]; //數(shù)組
      int *parr1[10]; //指針數(shù)組
      int (*parr2)[10];//數(shù)組指針
      int (*parr3[10])[5]; //數(shù)組指針數(shù)組
    解釋:命名規(guī)則按照操作符的優(yōu)先級來決定。

2.函數(shù)指針和定義

  • 定義:函數(shù)指針是指向函數(shù)的指針變量。
  • 用途:調(diào)用函數(shù)和做函數(shù)的參數(shù)
  • 聲明方法:返回值類型(*指針變量名)([形參列表])
    比如:
        #include <stdio.h>
        void test()
        {  
          printf("hehe\n"); 
        } 
          int main()
       {  
         printf("%p\n", test);
         printf("%p\n", &test); 
        return 0;
       } 

    運(yùn)行結(jié)果:
    模擬qsort實現(xiàn)冒泡排序
    輸出的是兩個地址,這兩個地址是 test 函數(shù)的地址。 那我們的函數(shù)的地址要想保存起來,怎么保存? 下面我們看代 碼:

    void test()
    { 
     printf("hehe\n"); 
         } //下面pfun1和pfun2哪個有能力存放test函數(shù)的地址? 
    void (*pfun1)(); 
    void *pfun2();

    首先,能給存儲地址,就要求pfun1或者pfun2是指針,那么答案就是:pfun1可以存放。pfun1先和*結(jié)合,說明pfun1是指針,指針指向的是一個函數(shù),指向的函數(shù)無參數(shù),返回值 類型為void。
    3.函數(shù)指針數(shù)組和定義,轉(zhuǎn)移表

  • 定義:把函數(shù)的地址存到一個數(shù)組中,那這個數(shù)組就叫函數(shù)指針數(shù)組。
  • 用途:轉(zhuǎn)移表
  • 聲明方法:函數(shù)返回值類型(*數(shù)組名[ ])( )
    比如:
    
     int (*parr1[10]])(); //函數(shù)指針數(shù)組
     int *parr2[10](); //指針函數(shù)數(shù)組

4.指向函數(shù)指針數(shù)組的指針和定義

  • 定義:指向函數(shù)指針數(shù)組的指針是一個指針 指針指向一個數(shù)組,數(shù)組的元素都是函數(shù)指針;
    比如:
    void test(const char* str) 
    {  
    printf("%s\n", str);
    }
    int main() 
     {  
    //函數(shù)指針pfun 
    void (*pfun)(const char*) = test;  
    //函數(shù)指針的數(shù)組pfunArr 
    void (*pfunArr[5])(const char* str);
    pfunArr[0] = test;  //指向函數(shù)指針數(shù)組pfunArr的指針ppfunArr  
    void (*(*ppfunArr)[10])(const char*) = &pfunArr;
    return 0; 
    }

    5.回調(diào)函數(shù)的使用
    回調(diào)函數(shù)就是一個通過函數(shù)指針調(diào)用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當(dāng)這 個指針被用來調(diào)用其所指向的函數(shù)時,我們就說這是回調(diào)函數(shù)。
    注:回調(diào)函數(shù)不是由該函數(shù)的實現(xiàn)方直接調(diào)用,而 是在特定的事件或條件發(fā)生時由另外的一方調(diào)用的,用于對該事件或條件進(jìn)行響應(yīng)。
    7.使用qsort函數(shù)排序各種類型的數(shù)據(jù)。

    #include <stdio.h> 
    #include<stdlib.h>
    //qosrt函數(shù)的使用者得實現(xiàn)一個比較函數(shù) 
    int int_cmp(const void * p1, const void * p2) 
    {   
    return (*( int *)p1 > *(int *) p2);
    } 
    int main()
    {    
    int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 }; 
    int i = 0;    
    qsort(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp); 
    for (i = 0; i< sizeof(arr) / sizeof(arr[0]); i++)  
    {      
    printf( "%d ", arr[i]);   
    } 
    printf("\n");
    system("pause");
    return 0;
    }

    運(yùn)行結(jié)果:
    模擬qsort實現(xiàn)冒泡排序
    8.模仿qsort的功能實現(xiàn)一個通用的冒泡排序。

    #include <stdio.h> 
     int int_cmp(const void * p1, const void * p2)
    {   
    return (*( int *)p1 > *(int *) p2); 
    } 
    void _swap(void *p1, void * p2, int size) 
    {     
    int i = 0; 
    for (i = 0; i< size; i++) 
    {  
     char tmp = *((char *)p1 + i);   
    *(( char *)p1 + i) = *((char *) p2 + i);   
    *(( char *)p2 + i) = tmp;   
    }
    } 
    void bubble(void *base, int count , int size, int(*cmp )(void *, void *)) 
     { 
     int i = 0; 
     int j = 0;   
     for (i = 0; i< count - 1; i++) 
    {   
      for (j = 0; j<count-i-1; j++)     
     {       
        if (cmp ((char *) base + j*size , (char *)base + (j + 1)*size) > 0)     
         {                
            _swap(( char *)base + j*size, (char *)base + (j + 1)*size, size);         
         }   
     }  
    } 
    } 
    int main() 
    {   
    int arr[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };   
    int i = 0;   
    bubble(arr, sizeof(arr) / sizeof(arr[0]), sizeof (int), int_cmp); 
    for (i = 0; i< sizeof(arr) / sizeof(arr[0]); i++)  
    {    
      printf( "%d ", arr[i]); 
    }     
    printf("\n");
    return 0;
    }

    運(yùn)行結(jié)果:
    模擬qsort實現(xiàn)冒泡排序

網(wǎng)站名稱:模擬qsort實現(xiàn)冒泡排序
文章出自:http://www.aaarwkj.com/article2/ipdhoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、定制網(wǎng)站、品牌網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、Google、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
97乱碰视频在线观看| 高清中文一区二区三区| 中文字幕人妻丝袜一区一三区 | 98热这里只有精品视频| 久久精品亚洲精品毛片| 色噜噜男人的天堂av| 久热伊人精品国产中文| 国产三级亚洲三级在线理论| 欧美成人午夜精品一区二区| 国产一区二区麻豆视频| 午夜精品三级一区二区三区| 男女做爰高清免费视频| 国产综合亚洲欧美日韩在线| 在线观看免费在线观看免费| 国产精品一区二区av麻豆| 亚洲黄色av乱码在线观看| 91福利免费在线看| 男人天堂手机视频在线| 日本中文字幕区二区三区电影| 九九热这里只有免费精品| 亚洲欧美日韩颜射极品| 黄色午夜福利在线观看| 亚洲特级黄色做啪啪啪| 精品人妻中文字幕在线| 开心五月婷婷丁香综合| 美女av在线免费观看| 性生活免费在线观看视频| 亚洲天堂毛片在线观看| 国产免费成人在线视频| 一区二区三区欧美影片| 亚洲黄片在线免费播放观看| 好吊妞在线新免费视频| 凹凸69堂国产成人精品| 亚洲国产传媒在线观看| 最新国产毛片久热精品视频| 蜜桃传媒18传媒在线| 91亚洲蜜臀精品国产| 国产成人激情自拍视频在线观看 | 国产亚洲综合久久系列| 禁止18岁以下观看的视频| 一区二区三区欧美久久|