第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

還有cmp函數(shù)中*(int*)a是什么意思?求大神解答

還有cmp函數(shù)中*(int*)a是什么意思?求大神解答

#include<stdio.h>#include<stdlib.h>int cmp(const void *a,const void *b){return *(int *)a - *(int *)b;}int main(void){int i,n,a[100];scanf("%d",&n);for (i=0;i<n;i++) scanf("%d",&a[i]);qsort(a,n,sizeof(a[0]),cmp);for (i=0;i<n;i++) printf("%d ",a[i]);return 0;}如以上程序,我們定義了的cmp帶有2個參數(shù),但是下面調(diào)用的時候卻不需要帶參數(shù),這是為什么?
查看完整描述

3 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊

因?yàn)閏mp在傳入qsort的時候是作為函數(shù)指針傳入的,qsort在調(diào)用cmp(就是“回調(diào)函數(shù)”)的時候會傳入合適的參數(shù)。

*(int*)a是因?yàn)椋篴是個void *類型,要先用(int*)將它轉(zhuǎn)成int*類型,然后再用*取值,變成int類型,才能比較大小。

查看完整回答
反對 回復(fù) 2022-11-22
?
回首憶惘然

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個贊

你這個 cmp和qsort中的cmp是一樣的寫法  應(yīng)該說 qsort在排序的時候 會自動為cmp賦值參數(shù) 因?yàn)閝sort中的cmd的參數(shù)原型就是這樣的 這是他內(nèi)部的比較機(jī)制 也就是這么規(guī)定的

對于下面的


int cmp(const void *a,const void *b){     return *(int *)a - *(int *)b; }

中的*(int*)a      可以看到 由于cmp函數(shù)要返回的int  切參數(shù)a,b都是指針形式的 但是不知道類型

所以比較的時候進(jìn)行強(qiáng)制轉(zhuǎn)換為int型的指針 然后通過括號外的*取得各自的int值大小進(jìn)行各自變量的差值運(yùn)算 得出各自變量的大小 后返回供 qsort內(nèi)部調(diào)用   這些其實(shí)都是在qsort內(nèi)部完成的  你的提問很好  很好的剖析了他的原理 共勉

 


查看完整回答
反對 回復(fù) 2022-11-22
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個贊

頭文件:stdlib.h
用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));
參數(shù): 1 待排序數(shù)組首地址
2 數(shù)組中待排序元素數(shù)量
3 各元素的占用空間大小
4 指向函數(shù)的指針,用于確定排序的順序
#########################################
qsort(a,n,sizeof(a[0]),cmp); // cmp是一個回調(diào)函數(shù),我們必需按照qsort的函數(shù)聲明中約定好的形式定義并且實(shí)現(xiàn)該函數(shù),也就是說qsort需要的是一個函數(shù)指針,而函數(shù)名恰恰就是
########################################
*(int *)a // 因?yàn)閍的類型是 void * ,先進(jìn)行強(qiáng)制類型轉(zhuǎn)換為 int *, 然后取值做差

查看完整回答
反對 回復(fù) 2022-11-22
  • 3 回答
  • 0 關(guān)注
  • 348 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號