結構體與指標

2021-06-19 15:08:39 字數 2466 閱讀 9782

struct s_options opt;//此時結構體內的資料都是乙個隨機數

struct s_options *opts = (struct s_options*)malloc( sizeof(struct s_options) * 8 );//此時各元素為預設初始化值,例如int就是0

一、結構體的定義方法

1、直接定義

(1)為了以後再定義,這裡只是宣告

struct s_options  type;

char *label;

char *arg;

char *message;

};

(2)既宣告了,又定義了,以後也可定義

struct s_options  type;

char *label;

char *arg;

char *message;

} opt;

(3)只定義一次,以後不需要定義了

struct   type;

char *label;

char *arg;

char *message;

} opt;

2、使用typedef

(1)

typedef struct s_options  type;

char *label;

char *arg;

char *message;

}opt;

(2)可以省略s_options

typedef struct  type;

char *label;

char *arg;

char *message;

}opt;

二、沒有指標的情況

1、賦值:

(1)初始化賦值:

struct s_options opt = ;
(2) 先宣告再賦值:

struct s_options opt;//此時結構體內的資料都是乙個隨機數

opt.type = opt_flag;

opt.label = "b";

opt.arg = "1"

opt.message = "print only the basis in report";

2、引用:

opt.type  opt.label opt.arg opt.message   (&opt)->type (&opt)->label (&opt)->arg (&opt)->message

三、一維指標

1、賦值:

(1)初始化賦值:

struct s_options options = ,,,

,,,,

};

(2) 先宣告再賦值:

struct s_options options;

(option+1)->label = "c";

或者option[1].label = "c"; 或者*(option+1).label = "c"

2、引用:

(option+1)->lable就是c,option[1].lable就是c,*(option+1).label = "c"

2、常用的變成指標來處理:

1、賦值:

(1)初始化賦值:

struct s_options options = ,,,

,,,,

};struct s_options *opts = options;

2、引用:

(opts+1)->label就是c,opts[1].label就是c,*(opts+1).label

四、動態分配

1、賦值:

(1)賦值://只有乙個時 也同理 opt->label (*opt).label

struct s_options *opts  = (struct s_options*)malloc( sizeof(struct s_options) * 8 );//此時各元素為預設初始化值,例如int就是0

opts->label = "g";

(opts+1)->label = "s";

opts[0].label = "g";

opts[1].label = "s";

或者(*(opts)).label = "g"

(*(opts+1)).label = "s"

2、引用:opts->label (opts+1)->label或者opts[0].label opts[1].label 或者(*(opts)).label (*(opts+1)).label

指標與結構體

宣告 c c 內容來自西交公開課,之後不再宣告,僅作為筆記 thx.指標與結構體 結構體變數的指標 位址 結構體變數名 使用指標處理結構體變數步驟 1.定義指向結構體變數的指標 結構體型別 指標變數名 2.給指標變數提供初值 格式1 指標變數 成員名 格式2 指標變數 成員名 其中 稱為結構指向運算...

指標與結構體

指標是乙個變數,它儲存了另乙個變數的位址。指標主要的功能有兩個 避免副本和共享資料。作用是什麼?參考 1 定義指標變數的一般形式為 基型別 指標變數名,如 int pointer 1 float pointer 2 char pointer 3等,在定義指標變數時必須指定其型別。2 兩個相關的運算子...

結構體指標與結構體中變數的指標

結構體指標與結構體變數指標的區別,在進行實現的工程專案中會有許多地方用到結構體指標的情況,在使用這前都需要先malloc一塊空間之後才能有空間進入儲存資料,例項 如下 include includetypedef struct student student t,pstudent t void pr...