馬鞍數55c語言 C語言零基礎入門結構體02

2021-10-16 11:28:52 字數 2508 閱讀 8855

這節課的主要內容:

1,結構體型別的陣列。

2,指針對結構體的操作。

上一節課講述了結構體的定義、初始化、以及簡單的使用。

但是既然結構體是乙個重新定義出的資料型別,那麼他就也能夠像c語言中自帶的資料型別一樣(int、float等等),可以進行陣列、指標的操作。

如下:int資料型別定義的陣列:

#includevoid main();      printf("原始資料:\n");    for(int i=0;i<3;i++)  printf("\n");  a[1] = 69;  printf("修改之後的資料:\n");  for(i=0;i<3;i++)  printf("\n");}
結果:

結構體型別的陣列:

#include #include // 先定義出結構體,並且給這個結構體起乙個別名為 stu。// 此時stu就與int同樣是乙個資料型別了,只是存放的資料不一樣而已。typedef struct studentstu;void main(),, } ;    printf("原始資料:\n");    // 首先使用迴圈輸出一下每個stu型別的資料。    // stu[i]可以索引到陣列中的第i個結構體。    // stu[i].name可以索引到陣列中第i個結構體的name屬性。  for(int i=0;i<3;i++)  printf("\n");    // 這裡是修改陣列中第2個結構體的資料。    // 使用stu[1]索引到陣列中的第2個結構體。    // 使用stu[1].name索引到陣列中的第2個結構體的name屬性。  strcpy(stu[1].name,"xiaojie");    stu[1].id = 007;    stu[1].gender = 1;    stu[1].age = 55;    // 修改資料  printf("修改之後的資料:\n");    // 修改之後再次輸出一下。  for(i=0;i<3;i++)}
結果:

如果你之前的基礎還不錯,那麼從介紹完結構體的定義與使用方式之後。

接下來的一些陣列,指標操作結構體你都不應該感覺難的。

因為結構體就是定義了乙個新的類似於int的資料型別而已,所以還是參考之前的int這些熟悉的資料型別怎麼運算元組,指標即可啊。

同樣,這裡用實際例子給出操作,**一看就會很明了的。

程式:

#include #include // 結構體的定義,不用再贅述了typedef struct studentstu;// 相當於有乙個新的資料型別stu誕生了void main()
結果:

程式:

#include #include // 結構體的定義,不用再贅述了// 相當於有乙個新的資料型別stu誕生了typedef struct studentstu;void main()    // 輸出一下  for(i=0;i<3;i++)}
重點來了

為什麼 p+i 可以得到陣列中每個結構體的首位址呢?

陣列位址申請的時候記憶體中是這個樣子的,會以每乙個結構體的長度為基本單位,申請三個結構體的空間。

比如:乙個結構體佔據25位元組的資料,那麼定義三個結構體陣列的時候就會申請 25*3=75 位元組的資料。

指標指向結構體陣列首部的時候,指標是指向結構體陣列的第乙個元素。

如圖所示:結構體指標+1的時候,指標是以結構體大小為基本單位進行移動。

所以當指標p+1的時候,指標將指向p所指向的結構體 的 後乙個結構體的首部,而不是進入到p所指向的結構體的內部。

結構體的基本知識也就結束了,下一節講完檔案,c語言就算是結束了。

大家加油!!!

零基礎學C語言 指標

成也指標,敗也指標。對於 語言來說,指標是他的招牌,卻也是最令人望而生畏的。我會嘗試用很號理解的方式去闡述,希望你可以看的明白。其實指標就是乙個普通的變數,只是他存放的是乙個位址,他占用的空間是固定的,在32位系統上是4個位元組,在64位的系統上是8個位元組。include intmain char...

零基礎搞懂C語言指標

c語言中把專門存放變數位址的變數 指標變數 簡稱指標。什麼這樣說你不明白?位址記憶體單元 變數100020x 10021y 1004 115z 2000 1000 p其中變數x的記憶體單元的位址為1000,而變數p的值是變數x的記憶體單元的位址所以稱p為指標變數簡稱指標。前邊我們已經學過 變數的定義...

零基礎C語言學習

c語言學習筆記 三 一 分支和迴圈 分支語句 if switch 迴圈語句 while for do while c語言是一門結構化的程式語言 順序結構,選擇結構,迴圈結構 if語法結構,當判斷括號內容為真時,執行語句 1.if 表示式 語句 2.if 表示式 多分支語句 語句1 else 語句2 ...