? asked in 電腦與網際網路程式設計 · 1 decade ago

關於int (*compare)(int,int)何者為錯?

關於int (*compare)(int,int)何者為錯?

a)it defines a parameter that is a pointer to a function that receives two integer arguments and returns a pointer to an integer as a result.

b) 包*compare的刮弧是必要的,因為*的優先權比

函數參數刮弧的優先權還要低

c)若沒有*compare的刮弧,將定義一個

(接收兩個整數且回傳一個指向整數的指標) 之函數

d)the corresponding parameter in the function protype would ordinarily be

int (*)(int,int)

2 Answers

Rating
  • Anonymous
    1 decade ago
    Favorite Answer

    A吧~

    你應該是考到有關 stdio 的內建函數 qsort (也就是快速排序)的使用吧

    因為int (*compare)(int,int)本身算是一個函數指標,也就是說,程式碼在執行的時候也是會儲存在記憶體之中的,而函數指標就是指向其他地方的函數,和一般我們用的int *整數指標差不多,不過一個指過去之後是一個編數,另一個指過去之後是一堆程式碼。

    在內建的快速排序裡,比較的這部份要由你自己寫,因為只有你才知道要從大排到小,還是由小排到大,或是你要排的東西其實是一個結構,能許要很多的判斷,所以這部份就要自己寫一個函數在扔給qsort當引數啦~

    有問題再問吧~

    Source(s): 我的腦~
  • Wow
    Lv 6
    1 decade ago

    答案是 b)

    有沒有*compare的刮弧

    原因請參考

    a), c), 和 d)

Still have questions? Get your answers by asking now.