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 ...