amazon検索
Recent Entries
Calendar
2023年09月
Su Mo Tu We Th Fr Sa
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Search


Links
Powered by
Movable Type 2.65
カテゴリ別アーカイブ
N88Basic [4件]
RadioSharkPlayer [14件]
VBA [2件]
VC [4件]
VSTi_ChordMaster [8件]
アセンブラ [2件]
知識 [5件]
TOTAL:

TODAY:

YESTERDAY:


2023年09月01日

_C/C++言語直感的難問

 こんな関数があったとします。

void put_list2(const int pcia[], int in, bool pbfuncfit(int)) {
    bool bflag = false;
    for (int i = 0; i < in; i++) {

        if (pbfuncfit(pcia[i])) {
            cout << "★";
        }
        else {
            cout << " ";
        }
        cout << "a[" << i << "] = " << pcia[i] << "\n";
    }
}

問.pbfuncfitって変数名なのに、後ろに(int)って付いてます。どういうことでしょう?


 はい!シンキングタイム!


 終~了~っ、みじかっ!


 答えは、関数ポインタの間接演算子省略をした表記です。外部から呼び出すときの引数には関数名を指定します。実際に呼び出すときは、サンプルのプログラム内のようにしてint型の引数が必要なものです。関数ポインタの引数であるint型の値も外部から受け取り必要なときは、もう一つ、int型の引数を追加するとかして、うけとらないと駄目ね。


 pbfuncfit(int)って表記だけど、うけとるのは関数名だけなんだってさ。


 わかった人は関数ポインタマスターだね。すごいぜ!忘れてた人は、修行が必要だね。


 ちな、自分はわからなかった。修行が必要な人だぜ。


 ぱっとみなんのこっちゃわからんパターンってこういうことの積み重ねで生まれるんだわ。気をつけないとな。


 再学習し始めたら、わかっていないことだらけ。修行が必要。


 9月はプログラミングの季節だね。9月1日だ。

Posted by よねっと at 2023年09月01日 22:00
Trackback