我正在閱讀cprogramming.com的教程,我對他們的鏈接列表示例有點卡住了。該代碼是下面:瞭解鏈接列表教程
#include <iostream>
using namespace std;
struct node {
int x;
node *next;
};
int main() {
node *root;
node *conductor;
root = new node;
root->next = 0;
(*root).x = 12; // I was testing alt. syntax.
conductor = root;
if(conductor != 0) {
while(conductor->next != 0) {
cout << conductor->x;
conductor = conductor->next;
}
}
conductor->next = new node;
conductor = conductor->next;
conductor->next = 0;
(*conductor).x = 42;
cout << conductor->x;
return 0;
}
在該示例root->next
被設置爲0
。 conductor
然後被設置爲root
的地址,這意味着while循環永遠不會到達正確的位置?
我不明白該示例的目的,如果它沒有演示使用鏈表(即添加更多的節點,並遍歷它們)。
我是否正確分析代碼?
可能會更好地問在 –
ChrisWue
while循環將達到,因爲導體==根和根!= 0. – weekens
爲您的信息,這個例子基本上是C與流。 C++會有更好的結構,使用構造函數和自動內存處理。 –