重複の可能性:
異なるセマンティクスを持つ関数呼び出し
私はCの関数ポインタについて読んでいます。私はこのプログラムを試しました:
#include <stdio.h>
int foo(void)
{
printf("At foo.");
return 0;
}
int main (void)
{
printf("%p\t%p\t%p\n", &foo, foo, *foo);
return 0;
}
このプログラムの出力は次のとおりです。
0040138C 0040138C 0040138C
1次元配列<datatype> <identifier>[N]
では、は同じ値identifier
を&identifier
指しますが、値の性質は異なります。1つは型datatype*
で、もう1つは1-D配列への型ポインターです。同様に、関数の場合、foo
と&foo
は同じです。しかし、どうですか*foo
、そしてその性質は&foo, foo, *foo
何ですか?