c語言結構體與連結串列問題【急】【急】【急】【急】【急】【急】【急】【急】【急】【急】【急】
1樓:網友
1) char name[ ]中的陣列name沒有指定大小,此處可以定義為name[20]
p = &stu;
3) (p).name = "mary"也有錯誤,此處不能這麼賦值。正確的寫法是:strcpy(p->name, "mary")
scanf("%f", &p->score)
將以上四個地方改完以後,就沒有什麼錯誤了!完整的程式是:
#include
#include
int main( )
stu, *p;
p = &stu;
strcpy(p->name, 」mary」);
scanf(「%f」, p->score);
printf(「%6d%10s%, p->name, p->score);
return 0;}
求大大們具體描述下c語言中的結構體和連結串列(最好能用圖表描述)
2樓:公尺果果
1)簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為數磨慎穗組是單一資料型別的資料集合,它本身不是資料瞎卜型別(而結構體是),陣列名稱是常量指標,所以不可以做為左值進行運算,所以陣列之間就不能通過陣列名稱相互複製了,即使資料型別和陣列大小完全相同。
定義結構體使用struct修飾符,例如:
struct test
float a;
int b;
2)連結串列(linked list)是一種常見的基礎資料結構,是一種線性表,但是並不會按線性的順序儲存資料,而是在每乙個節點裡存到下乙個節點的指標(pointer)。由於不必須按順序儲存,連結串列在插入的時候可以達到o(1)的複雜度,比另一種線性表順序錶快得多,但是查詢乙個節點或者訪問特定編號的節點則需要o(n)的時間,而順序表相應的時間複雜度分別是o(logn)和o(1)。
在電腦科學中,連結串列作為一種基礎的資料結構可以用來生成其它型別的資料結構。連結串列通常由一孝友連串節點組成,每個節點包含任意的例項資料(data fields)和一或兩個用來指向明上乙個/或下乙個節點的位置的鏈結("links")。連結串列最明顯的好處就是,常規陣列排列關聯專案的方式可能不同於這些資料專案在記憶體或磁碟上順序,資料的訪問往往要在不同的排列順序中轉換。
而連結串列是一種自我指示資料型別,因為它包含指向另乙個相同型別的資料的指標(鏈結)。連結串列允許插入和移除表上任意位置上的節點,但是不允許隨機存取。連結串列有很多種不同的型別:
單向連結串列,雙向連結串列以及迴圈連結串列。
c語言關於結構體的小問題,C語言關於結構體的小問題
在f函式中s是一個臨時的變數,它隨著f的呼叫而產生,隨著f的結束而消失,你這裡的交換只是在f中臨時調換了p指向的地址,並沒有改變p指向地址的記憶體中的內容,要想改變裡面的內容就要解指標,給具體存放資料的記憶體賦值,例如p 1 s 1 等等.這很簡單啊,陣列下標從0開始,s 1 是第二個 輸出結果當然...
編輯c語言程式,定義表示分數的結構體型別,並求兩個分數相加之和
順便說明一下,由於我用的是win tc編譯器,getch 只是接受一個字元起暫停一下的作用,include include typedef struct fenshu fenshu convert fenshu tmp return tmp fenshu add fenshu a,fenshu b ...
c語言資料結構,把單連結串列LA中的奇數項和偶數項分開,分別
輸入時以 1結束 include include struct node struct node create else p next null return head void print link struct node head printf n struct node devide link...