2
引数を渡す関数の名前を使用するとき、その関数へのポインタを使用していますか?関数の名前です。その関数へのポインタですか?
例:
int foo(int a, int b);
int main(void)
{
int a = foo(1,3); //foo() it's a pointer to the function foo()?
return 0;
}
引数を渡す関数の名前を使用するとき、その関数へのポインタを使用していますか?関数の名前です。その関数へのポインタですか?
例:
int foo(int a, int b);
int main(void)
{
int a = foo(1,3); //foo() it's a pointer to the function foo()?
return 0;
}
あなたが探している用語が機能指名です。 ポインタタイプではありませんが、ほとんどの場合、はに変換されます。
引用C11
標準、関数指定子は、関数型を持つ式である
チャプタ§6.3.2.1、(強調鉱山)。それは
sizeof
オペレータの オペランドである場合を除いて、_Alignof
オペレータ、65)又は単項&
オペレータ、「機能復帰タイプ「」」タイプと 関数指定子は、 '型を持つ式に変換され'関数型を返す関数へのポインタ' '。
関連、「関数呼び出し」仕様の一部で、章6.5.2.2
呼び出される関数92を表す式) はvoidを返すまたは返す機能させるタイプのポインタを持たなければならないから、配列型以外の完全なオブジェクト型教えてくれる
、関数呼び出しで、指示が実際にポインタに変換されます。
いいえ、それは関数を呼び出すだけです。 –
関数名は、引数として渡されたときにポインタに減衰します。それはあなたが本当に気にするべきことです。 – StoryTeller
それはその関数のコードのアドレスにジャンプするようにコンパイルしますので、ポインタですが、それはポインタの通常の理解ではありません。その点については、任意の変数はメモリ内のスペースへのポインタであると理解することができます – MotKohn