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;
}
}
주 :이 함수는 다음과 같이 호출합니다. reverse (& l); (l은 "LInt l"입니다) snoc이하는 일은리스트의 마지막 링크에 값을 넣는 것입니다.포인터 주소를 전달하는 링크 된 목록 반전
제 질문은 왜 함수를 호출 할 때 "l"의 주소를 전달해야합니까? 그리고 역방향 헤더에 "LInt * l"이있는 이유는 무엇입니까? 내가 통과 한 주소에 대한 포인터입니까?
어리석은 질문이고 문법적 오류 (영어는 제 모국어가 아닙니다)를 작성하면 죄송합니다.
미리 감사드립니다. (함수를 호출 할 때 우리는 "L"의 주소를 통과해야 할 이유는 무엇입니까?)
경고를 켜십시오. 'reverse'는'LInt'을 받아들이고'LInt * '를 전달합니다. 같지 않아. – StoryTeller