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上,我調用如下函數:reverse(& l); (l是一個「LInt l」),snoc做的是把值放在列表的最後一個鏈接上。反轉鏈接列表,傳遞指針的地址
我的問題是,爲什麼我們在調用函數時必須通過「l」的地址?爲什麼在相反的標題上有「LInt * l」?它是我通過的地址的指針嗎?
對不起,如果這是一個愚蠢的問題,如果我犯了任何語法錯誤(英語不是我的母語)。
預先感謝您。
打開您的警告。 'reverse'接受一個'LInt',並將它傳遞給'LInt *'。不一樣。 – StoryTeller