C語言結構體

2021-07-24 18:39:40 字數 1062 閱讀 4259

結構體:在網路協議、通訊控制、嵌入式系統、驅動開發等地方,我們經常要傳送的不是簡單的位元組流(char型陣列),而是多種資料組合起來的乙個                整體,其表現形式是乙個結構體。

結構體與陣列的比較:

1.都有多個元素組成;

2.各個元素在記憶體中的儲存空間是連續的;

3.陣列中各個元素的資料型別相同,而結構體中的各個元素的資料型別可以不相同。

struct的使用方法例項:

#include struct student

;int main()

; struct student *p_stu = &stu;

scanf("%d",&stu.num);

scanf("%d",&(p_stu->num));

stu.num = 1;

(&stu)->num = 1;

stu.name = (char *)malloc(sizeof(char) * 100);

strcpy(stu.name,"zhangsan"); = "zhangsan";

stu.age = 12;

stu.*** = 'f';

p_stu->num = 2;

(*p_stu).num = 2;

p_stu->name = "lisi";//strcpy(p_stu->name,"lisi");

printf("stu.name = %s\n",p_stu->name);

printf("stu.age = %d\n",p_stu->age);

return 0;

}

結構體和聯合體的區別:

struct和union都是由多個不同的資料型別成員組成的,但在任何同一時刻,union中只存放了乙個被選中的成員,而struct的所有成員都存在;

在struct中,各成員都占有自己的記憶體空間,它們是同時存在的,乙個struct變數的總長度等於所有成員的長度之和;

在union中,所有成員不能同時占用它的記憶體空間,它們不能同時存在,union變數的長度等於最長的成員的長度。

C語言結構體

1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...

C語言 結構體

宣告乙個結構體型別 struct 結構體名 成員表列 定義結構體變數的方法 1 先宣告結構體型別再定義變數名。在定義了結構體變數後,系統會為之分配記憶體單元.例如 struct student student1,student2 2 在宣告型別的同時定義變數,例如 struct 結構體名 成員表列 ...

c語言 結構體

1 定義結構體 c語言允許使用者自己建立不同型別資料組成的組合型的資料結構 struct 結構體名 1 結構體的型別不是只有一種,可以根據需要設計許多種,如struct student struct worker等 2 結構體的成員可以是另一結構體的成員,注意的是引用此成員的方式 2 定義結構體變數...