結構體基礎

2021-10-07 19:08:58 字數 1262 閱讀 5927

1、結構體本質相當於,自己定義了乙個資料型別,資料型別的本質是固定大小記憶體塊的別名。

2、.c和.cpp對結構體型別定義變數的編譯處理行為不一樣。在.c中少struct不可以。

3、結構體型別typedef

4、結構體變數記憶體按照四位元組存放

5、結構體中巢狀的指標要使用,需要給指標進行賦值或者malloc。因為如果沒有初始化結構體,那麼結構體內巢狀的指標位址是不可操作的,可以認為是野指標。

6、結構體的子域必須是已定義記憶體大小的資料型別。

結構體變數做引數和結構體指標變數做引數不一樣。

結構體變數做引數實參往形參傳遞引數的實質是「=」,賦值。

#define _crt_secure_no_warnings

#include

#include

#include

typedef

struct teacher

teacher;

intprinttarray

(struct teacher *parray,

int count)

}int

sorttarray

(struct teacher *parray,

int count)}}

}void

main()

printtarray

(tarray,4)

;printf

("排序後:\n");

sorttarray

(tarray,4)

;printtarray

(tarray,4)

;system

("pause");

}

5、注意結構體的淺copy和深copy

void

copyobj03

(struct advadvteacher *from,

struct advadvteacher *to)

//t2 = t1; //編譯器賦值操作 編譯器等號=操作

copyobj03

(&t1,

&t2);if

(t1.a_name !=

null

)free

(t1.a_name);if

(t2.a_name !=

null

)free

(t2.a_name)

;system

("pause");

}

結構體基礎

什麼是結構體?簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而結構...

結構體 基礎

一 結構是什麼?結構體是一種可以儲存多個資料的集合,像陣列一樣,你可以把多個資料儲存到乙個變數裡,但與陣列不同的是,結構體中的成員 和陣列元素一樣,在結構體中我們稱之為成員 可以是不同型別的。結構體和陣列比較 1 陣列中所有元素的型別相同,但結構體允許不同 2 陣列通過 陣列名 下標 或者指標來訪問...

結構體基礎

結構體,結合程式看好多了。程式直接網上ctlr c來的 還有 和 的區別 include include 結構體 int main student struct student pstruct pstruct student 指向student結構體變數 printf the sudent s in...