是什麼這兩個聲明的區別:C函數指針混亂
int operate(int (*func)(int, int), int a, int b){
return (*func)(a, b);
}
和
int operate(int func(int, int), int a, int b){
return func(a, b);
}
這兩個似乎也是相同的:operate(sum, 1, 1)
和operate(&sum, 1, 1)
如果我通過功能sum
如在func
的地方2號的功能,其結果仍然是相同的。爲什麼?
約衰減第二段是外的地方,我想。無腐爛發生的事情,除非你計數'(* FUNC)'作爲函數和'func'爲指針它衰變到...? – 2012-02-16 16:59:48
@R:哦,我明白了。我指的是「操作(sum,1,1)」與「操作(&sum,1,1)」。 – 2012-02-16 17:01:14
哦,我明白了.. – 2012-02-16 17:02:59