2013-03-17 104 views
4

我是編程新手,請耐心等待。任何人都可以請解釋最後一行代碼在做什麼,以及整個代碼塊試圖做什麼。我知道第一個塊是創建一個名爲node的結構,並在其中添加兩個指針* next和* prev。順便說一句,這是一個鏈表列表程序的一部分簡單結構程序C

struct node 
{ 
    char line[80]; 
    struct node *next,*prev; 
}; 

struct node *start=NULL,*temp,*temp1,*temp2,*newnode; 

在此先感謝您。

+0

你用什麼C的書?對指針有什麼看法? – cnicutar 2013-03-17 05:04:47

+1

末行是類似於'結構節點*接下來,*分組;'線 – 2013-03-17 05:05:51

回答

4

最後一行是創造5點的指針類型struct nodestart其指向NULLtemptemp1temp2newnode的。

的代碼整個電路實際上是創建一個結構稱爲node其中包含的80個字符的陣列,隨後到下一個和前指針。因此它創建了一個雙向鏈表的結構。

+0

Aniket這正是我想知道..太感謝你了.. :) – 2013-03-17 05:15:05

+1

我不知道是否「創造」是MOT中庸之道。它定義了一個稱爲「struct node」的結構類型,但是沒有創建結構類型的變量 - 只有指向這些類型的指針。 – 2013-03-17 05:18:51

+0

很棒@ShyStudent謝謝。 – 2013-03-17 05:27:02

2

最後一行是創造5個指針型結構的節點。這裏開始initilized爲空。

+0

感謝üLearnedfromMistake ..它是有幫助:) – 2013-03-17 05:24:43

2

的最後一行代碼定義了5個變量,所有這些都是指針struct node。其中之一start被初始化爲NULL;如果變量在任何函數之外,其他變量也初始化爲NULL,但如果變量位於函數內部,則未初始化。未初始化的指針在使用之前應該被初始化。空指針不應被解除引用;瘋狂在於空指針的結尾(或者更通常的是核心轉儲)。

+0

謝謝你喬納森和LearnedfromMistake :) – 2013-03-17 05:15:39

+0

@ShyStudent: - 歡迎您!快樂編碼:) – 2013-03-17 05:16:08

6
struct node *start=NULL,*temp,*temp1,*temp2,*newnode; 

可以像

struct node *start=NULL; 
struct node *temp; 
struct node *temp1; 
struct node *temp2; 
struct node *newnode; 

現在是很容易理解..?

+0

非常感謝你,Mr.32很容易理解.. :) – 2013-03-17 05:12:41