返回本地引用我不知道,如果這個問題已經問過(通過SOF搜查,但沒有找到答案)指針 - 在C++
我寫了一個LinkedList類和扭轉它的功能。功能如下,
struct LinkedList::element* LinkedList::recurrsiveReverseList(element* head){
element* tempList;
if(head->next == NULL){
return head;
}else{
tempList = recurrsiveReverseList(head->next);
head->next->next = head;
head->next = NULL;
return tempList;
}
}
這裏我聲明瞭一個局部指針變量,並對它做一些修改並將它返回給調用者。在C++中,當我在函數內部聲明局部變量時,範圍只存在於函數中。現在,當我從函數返回指針時,它是如何工作的?我能夠理解邏輯並得到結果(幸運的是),但我無法完全理解在這裏工作。
有人可以澄清我的疑問嗎?
請注意,代碼片段中的第一個'struct'關鍵字是完全不必要的。 –
不錯的功能。我會把'if(head == NULL || head-> next == NULL){' – sje397
@seth卡內基:是的你是對的。該結構不是必需的。但是編譯器如何忽略它呢?我的意思是,當我返回一個對象/指針到一個類時,我沒有在函數定義中提及關鍵字'class'(如果我這樣做,是不是會拋出錯誤?)。但是如何忽略struct關鍵字呢? – Ajai