struct node {
int data;
struct node* next;
}
void push (struct node **head, int data) {
struct node* newNode = malloc (sizeof (struct node));
newNode->data = data;
newNode->next = *head;
*head = newNode;
}
//I understand c version well.
C++ version
void Stack::push(void *data) {
struct node *newNode = new node;
newNode->data = data;
newNode->next = head;
head = newNode;
}
在C++頭部是棧類的私有或受保護成員,並聲明爲node * head。c&C++中的指針操作
問題:爲什麼head可以在C++的push()調用後保留它的值。
在c中,我們需要聲明它爲**,因爲我們想在push()函數調用後改變頭指針的值。在C++代碼中,調用後不會更改頭部丟失嗎?
推測head是該類的成員變量。你從中學到了哪一本C++書不包括這個? – 2011-05-25 20:44:46
很多年前我讀過C++,但從未使用過。那時我用藍色封面書。我主要使用c,但也很少。順便說一句,這是我在這裏的第一篇文章,我非常感謝社區如何迴應! – user770284 2011-05-25 20:54:39