黑馬程式設計師 C語言學習筆記之結構體(十二)

2021-06-21 00:31:08 字數 2729 閱讀 2224

--------------------------------------------ios期待與您交流!--------------------------------------------

對於陣列中,每個元素都是相同的,如果我們想使每個元素不同的話,我們可以考慮使用結構體。

結構體可以由多種不同型別的資料型別組成的新的資料型別

格式:

struct 結構體名

例如:

struct student ;
1、先定義結構體,再定義變數
struct student ;

struct student stu;

2、定義結構體的同時定義變數
struct student  stu;
3、直接定義結構體變數
struct  stu;
1、宣告變數的同時初始化
struct student ;

struct student stu = ;

2、先宣告變數,再逐一初始化
struct student stu;

stu.age = 22;

stu.name = "hello";

3、定義結構體的同時進行變數定義和初始化
struct student  stu = ;
4、非順序初始化
struct student stu = ;
5、注意:如果沒有初始化結構體,所有變數會自動的有預設值
1、結構體變數是基本資料型別
int age = stu.age;

char *name = stu.name;

2、結構體變數是結構體
struct date ;

struct student ;

struct student stu = };

int year = stu.birthday.year;

int month = stu.birthday.month;

int day = stu.birthday.day;

3、相同結構體型別變數間可以整體賦值
struct student stu1 = ;

struct student stu2 = stu1; // 把結構體變數stu1的值對應的賦值給stu2,所以stu2 =

1、三種定義方式:
// 方式一

struct student stus[3];

// 方式二

struct student ;

struct student stu[3];

// 方式三

struct stus[3];

2、初始化 和陣列的初始化一樣,可以參照

陣列筆記。

stus = , , }
1、格式 struct 結構體名 *指標名;

2、訪問結構體的方式增加了 之前訪問結構體的方式是

結構體變數名.成員變數名

現在增加了

(*指標名).成員變數名

指標名->成員變數名

3、例子

struct student ;

struct student stu = ;

struct student *p = &stu;

printf("%d, %s\n", stu.age, stu.name);

printf("%d, %s\n", (*p).age, (*p).name);

printf("%d, %s\n", p->age, p->name);

1、結構體作為函式引數 結構體實參會把成員變數值對應的賦值給函式結構體引數對應的變數值,改變函式結構體引數不會影響到實參。

struct student ;

void test(struct student s)

int main()

; test(stu);

printf("%d, %s\n", stu.age, stu.name);

return 0;

}

輸出:

23, hello

2、結構體指標作為函式引數

struct student ;

void test(struct student * s)

int main()

; test(&stu);

printf("%d, %s\n", stu.age, stu.name);

return 0;

}

輸出:

10, world

--------------------------------------------ios期待與您交流!--------------------------------------------

詳細請檢視:

黑馬程式設計師 C語言學習筆記之基本程式結構

ios培訓 android培訓 期待與您交流!1.條件語句 像其它語言一樣 c也提供條件語句。在c中條件語句的一 般形式為 if 表示式 語句1 else 語句2 上述結構表示 如果表示式的值為非0 ture 即真,則執行語句1,執行完語 句1從語句2後開始繼續向下執行 如果表示式的值為0 fals...

黑馬程式設計師 C語言學習筆記之結構體和列舉

ios培訓 android培訓 期待與您交流!1.為什麼使用結構體 平時我們總是使用乙個int flloat,double,char等基礎資料型別來定義乙個變數,其實這在現實的情況是不能滿足 要求的,比如,我們要定義乙個學生的變數,那學生有最基本的屬性,如姓名,年齡,身高。姓名需要char 型別,年...

黑馬程式設計師 C語言學習筆記之陣列(九)

ios期待與您交流!1 定義 格式 型別 陣列名 元素個數 裡面的個數必須是乙個固定值,可以是常量 比如6 8 常量表示式 比如3 4 5 7 絕對不能使用變數或者變數表示式來表示元素個數,大多數情況下不要省略元素個數2 初始化 一般形式是 型別 陣列名 元素個數 int a 2 其實相當於 int...