0
typedef struct slist *LInt;

typedef struct slist{

int value;
LInt next;
}Node;

void reverse(LInt *l){

LInt tail;
if(*l){
    tail=(*l)->next;
    reverse(&tail);
    snoc(&tail,(*l)->value);
    free(*l),
    *l=tail;
    }
}

main では、次のように関数を呼び出します。(l は "LInt l" です) そして snoc が行うことは、リストの最後のリンクに値を配置することです。

私の質問は、関数を呼び出すときに「l」のアドレスを渡す必要があるのはなぜですか? そして、なぜリバースのヘッダーに "LInt *l" があるのでしょうか? 渡したアドレスへのポインタですか?

ばかげた質問で、文法的な誤りがあれば申し訳ありません (英語は私の母国語ではありません)。

前もって感謝します。

4

2 に答える 2