[英]difference between calling a function when it is pointed by a pointer and not pointed by a pointer
在(1)中, main
調用go
,並在調用中傳遞了foo
的地址。 在 (2) 中, main
調用go
並且不傳遞任何參數。 ( foo
指定 function foo
。但是,當 function 指示符用於表達式而不是sizeof
或unary &
的操作數時,它會自動轉換為指向 function 的指針。所以go(foo)
等同於go(&foo)
。)
在 (1) 中, go
接受一個參數,該參數是指向 function 的指針,具有未指定的參數和返回類型void
。 (2)中, go
不帶任何參數。
在 (1) 中, go
通過使用其參數proc
調用傳遞給其地址的 function。 在 (2) 中, go
調用foo
。 (如上所述,雖然foo
在foo();
中使用,但它會自動轉換為地址,就好像(&foo)();
已被寫入。所有 function 調用實際上使用 function 的地址,即使 function 指示符是用過的。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.