翁愷 程式設計高階C語言筆記 結構型別

2021-10-18 15:29:20 字數 2426 閱讀 8794

結構型別

列舉

列舉是使用者定義的資料型別,用來表示依此排列的常量(常量型別只能是 int,常量大小是從0到n)

列舉型別裡的名字通常不是真的使用,要使用的是大括號裡的常量名字。定義列舉的意義就是給這些常量定義一些名字

enum colors 

;//red=0...

voidf(

enum color c)

;int

main()

voidf(

enum color c)

//列舉也可以自定義常量

enum colors

;//此時red=0,yellow=1,green=5

結構體

自定義的復合的資料型別,在乙個資料型別中有多種不同的型別

結構體放在所有函式的外面時,可以被所有函式使用;放在某個函式裡面時,只能在那個函式的內部使用。

//定義方式1

struct point

;//別忘了最後的分號

struct point j;

//變數j的資料型別是point

j.x =1;

j.y =2;

//給j中的變數賦值

//定義方式2

struct pointj;

//將上述的兩步寫在了一起

//方式3

struct

j;//無名結構體,這樣寫就不能用此結構體來定義新變數了,僅適用於只想使用一次的結構體

//結構體賦初值

struct point j =

;struct point j =

;//如果沒有指定的值會預設0

p1 =

(struct point)

;//強制型別轉換 相當於初始化p1.x=10..

p2=p1;

//初始化p2.x=10..

//定義乙個指向結構體的指標

struct point *p_point =

&j;//定義指標時給出指標的型別。

//定義結構型別

typedef

struct _pointpoint;

point j;

//將結構他定義為乙個新的型別,就不用每次都打乙個struct了

結構體也可以作為返回值返回。

//想要使函式中對傳入結構體的值進行儲存

//返回結構體

struct point

;struct point getstruct

(void

)int

main

(void);

y =getstruct()

;}//傳入指標

//更加有效,因為上述方法是傳值,要為新的函式內的結構體裡的結構型別開闢乙個記憶體空間,然後將傳入的引數乙個個複製過去,佔空間耗時間,所以大的結構體不推薦傳值

struct point *p =

&j;(

*p).x=

100;

//*p就是j 相當於j.x

p->x=

100;

//兩者等價,->就是結構變數中的成員,箭頭的左邊只能是指標!

struct point getstruct

(struct point *p)

void

output

(struct point p)

output(*

getstruct

(&y));

//y是乙個point型別的結構體,&y是結構體位址,相當於指標的值,getstruct(&y)是返回的那個指標p,*p就是取結構體裡的值

struct point studentspoint[3]

=,,}

;//定義了乙個結構體陣列

printf

("%d,%d"

,studentspoint[0]

.x,studentspoint[0]

.y);

//就會顯示99和100

struct rectangle 

struct rectangle rec;

rec.point1.x=1;

rec.point2.y=2;

//巢狀再加陣列

struct rectangle rects,

},,}

};rects[0]

.point1.x //就是1

rects[0]

.point1.y //就是0 就是最裡面那個小括號,右邊那個小括號就是rects[0].point2.x和y

翁愷C語言程式設計 學習筆記5

變換看待方式,還有unsigned 在計算機內部,一串字元在現實中表示什麼取決於用什麼樣的方式去看待它,比如 d與 u同樣輸出同乙個位串,會不一樣。字面量,是在編譯器編寫介面裡的內容,可以有比如012表示8進製,編譯器會自動將其轉成10進製,但是這是編譯器這個層面的事情,在計算機底層只有2進製。進製...

翁愷C筆記 指標

指標應用場景 1.函式需要返回多個值,其中一些值可通過指標返回。傳入的指標引數其實是需要儲存帶回結果的變數 例程 include include void swap int a,int b int main void swap int pa,int pb 2.需要傳入較大的資料時用作引數 3.傳入陣...

C語言程式設計高階 翁愷 指標與字串

1.傳入函式的數組成了什麼?函式引數表中的陣列實際上是指標,sizeof a sizeof int 可以用陣列運算子來進行計算,以下四種函式原型等價。int sum int arr,int n int sum int int int sum int arr,int n int sum int int...