c語言結構體

2021-10-25 14:37:12 字數 2285 閱讀 4911

常用第三種

1.

struct data today;2.

struct

today;

3.struct data today;

struct date today;

//today就是定義的結構變數

形式1.

struct date today =

;形式2.

struct date thismonth =

通過.運算子和名字訪問結構成員

today.month

today.day

today.year

直接用結構變數的名字訪問整個結構

對於結構體整體,可以賦值、取位址,也可傳遞值給函式引數

struct pointp1, p2;

p1 =

(struct point)

; 即p1.x =

10;p1.y =

5p2 = p1; 即 p2.x = p1.x;p2.y = p1.y; 陣列則無法如此賦值

與陣列不同,必須使用&運算子

struct date myday;

struct date *p =

&myday; 指標指向結構變數myday,並且指標是結構型別的

(*p)

.month =12;

p->month =

12; 用->表示指標所指的結構體變數中的成員

1.好處是傳入傳出的只是乙個指標大小

2.若要保護傳入結構不被函式修改,用*const struct point y

;3.返回傳入的指標是一種套路

#include

struct point y;

struct point *

inputpoint

(struct point *);

//該函式通過結構指標將實參傳入函式,修改後,再返回乙個指標(小套路)

void

print

(const

struct point *p)

;//列印結構體,不改變值,故用const。

void

outpoint

(struct point p )

;//也是輸出結構體,但與上個函式引數型別不同

intmain

(int argc,

char

const

*ar**)

;// inputpoint(&y); 該句若不刪除,和下一句會各呼叫一次inputpoint函式,即要輸入兩次

struct point *z =

inputpoint

(&y)

;// *z = ;該句只想說明可以這麼用來初始化,表示結構指標z指向的那個值

print

(z);

//print(inputpoint(&y));這樣寫會再次呼叫inputpoint函式

// struct point *q = &y;

// printf("%d %d",q->a, q->b);//原因同上

outpoint

(*z)

;//z是結構指標,*z是指標指向的那個結構型別的值

return0;

}struct point *

inputpoint

(struct point * p)

void

print

(const

struct point *p)

void

outpoint

(struct point p )

struct date 

;struct date dates[

100]

;struct date dates=

,};

struct point 

;struct rectangle

;struct rectangle r;

r.pt1.x; r.pt1.y;

r.pt2.x; r,pt2,y;

若有struct rectangle r,

*rp;

rp =

&r;

則r.pt1.x 與 rp->pt1.x 等價。

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 定義結構體變數...