結構體的用法

2021-06-23 05:05:36 字數 1701 閱讀 7349

1、資料型別的定義

struct point ;

結構體是一種資料型別,故此處被宣告的結構體point,同int 、char一樣。

2、結構體的定義

struct point ;

struct point p1;

struct  point是資料型別,故struct point p1就相當於int a,是一種定義。

同理:

structpoint  p1,p2;

3、結構體的宣告

在.c檔案中定義的結構體,可在.h檔案中宣告

struct point ;

extern struct point p1;

4、結構體的初始化

struct point p1=;

相當於

int  a = 100;

是一種初始化,定義的同時初始化

同理

structpoint  p1=;

5、結構體陣列

①定義

struct student

;struct student students[3];

同理

struct 

students[3];

②初始化

struct

students[3]=,};

③使用

students [i].***=『f』;

6、結構體指標

typedef struct key,*keyptr;     //這時候系統會為key分配乙個結構體的空間	

//但為keyptr分配乙個指標的空間,也就是4個位元組的int型別。並沒有分配結構 體空間

// keyptr指向某個位置空間,是不可用的

//必須要為其malloc分配記憶體才可以使用

//(或者將其指向乙個結構體空間)

keyptr tkey=(keyptr)malloc(sizeof(key)); //malloc返回(void*),故要轉換為結構體指標

//(或者key tkey=(key*)malloc(sizeof(key));)

tkey->str=(char*)malloc(10); //結構體的成員也是指標,也需要分配空間

free(str); //先釋放結構體成員占用的空間

free(keyptr); //再釋放結構體占用的空間

7、結構體的巢狀

已經定義了乙個資料結構

structpoint ;

現在要定義乙個新的資料結構(巢狀結構體),注意新的結構裡的成員的資料結構必須已經定義過

structpoint ;
使用:

area.point.p1 = 1;

結構體的用法小結

結構體的宣告 結構體是一些值得集合,這些值稱為成員變數,結構體的每個成員都可以是不同型別的變數。乙個結構體變數,可以用來描述乙個 學生的資訊,結構體的成員可以是標量陣列,指標,甚至可以是其他的結構體。eg struct stu 結構體型別的訪問1.通過操作符 來訪問的 define crt secu...

C struct結構體的用法

struct personperson a,person b 宣告之後直接建立變數 struct person person c 需要的時候建立typedef struct person 這裡 person 不是變數,而是型別名 person person d 也可以通過這種方式建立變數一般情況下結...

typedef的用法 結構體

typedef struct arr a 這種等價於 typedef arr a 這種類似非結構體的 typedef int zhangsan也就是給int取了乙個新名字叫zhnagsan,其實結構體中的大括號可以理解成乙個空格,這樣子typedef的用法其實都一樣了 typedef struct ...