C語言學習 結構體

2021-09-10 19:44:35 字數 2586 閱讀 2851

#include #include #include //宣告結構體

struct student //student結構體名

; int age;

char ***;

};int main()

; //初始化結構體變數

= "bbbb";

strcpy(s1.name, "bbbb");

s1.age = 22;

s1.*** = 'm';

//列印結構體變數,逐個列印

printf("%s %d %c\n", s1.name, s1.age, s1.***); //通過結構體變數訪問結構體成員,用符號 .

printf("%s %d %c\n", s2.name, s2.age, s2.***); //通過結構體變數訪問結構體成員,用符號 .

struct student *s3; //結構體指標

s3 = (struct student *)malloc(sizeof(struct student));

strcpy(s3->name, "cccc");

s3->age = 24;

s3->*** = 'm';

printf("%s %d %c\n", s3->name, s3->age, s3->***);

scanf("%s", s1.name); //不需要取位址

scanf("%s", s3->name);

scanf("%d", &s3->age);

free(s3);

return 0;

}

注:

char *ptr;

ptr = "helloworld";

/*******

char str[32];

str = "helloworld"; //str是常指標,不能被賦值,陣列與字串不能直接賦值,可以通過拷貝或單個元素賦值。

*******/錯誤的

注:堆和棧區別:

棧:作業系統管理

堆:使用者管理

(1).

struct test 

;typedef struct test t;

(2).

typedef struct test 

t ;

(1).結構體總長度一定是最長成員的整數倍(double除外);

(2).每個成員的偏移量一定是該成員長度的整數倍。

#include //1、結構體總長度一定是最長成員的整數倍

//2、每個成員的偏移量一定是該成員長度的整數倍

struct test

;typedef struct test t;

struct test2

;int main()

#include struct student 

;typedef struct student stu;

int main()

for (i = 0; i < 3; i++)

stu *s1[10]; //結構體指標陣列

for (i = 0; i < 3; i++)

return 0;

}

#include //聯合體特點:所有成員共享同一段記憶體空間  聯合體長度:最長成員的長度

union test

;int main()

#include union test

;int main()

else if (t.ch[0] == 2 && t.ch[1] == 1)

return 0;

}

#include int main()

#include /*

#define sun 0

#define mon 1

#define tue 2

#define wen 3

*/enum; //屬於常量

int main()

system("clear");  //清屏

exit(0); //退出程序

free(s3); //釋放申請的記憶體空間

C語言學習 結構體

題目要求 學生的記錄由學號 姓名 專業組成,根據班級人數,將學生記錄存放在結構體陣列中,由於部分同學轉專業,學生記錄發生了變化,請程式設計實現根據學號查詢查詢學生並修改專業,分別輸出轉專業和未轉專業的學生記錄。要求 班級人數 學生記錄均由鍵盤輸入 include define m 100 要求 1....

c語言學習結構體

結構體格式 struct 結構體名稱 結構體是一種集合,它裡面包含了多個變數或陣列,資料型別可以相同也可以不相同。eg可以包含乙個人的身高 double 體重 int 顏值 char ii 21 結構體的定義如下所示,struct為結構體關鍵字,tag為結構體的標誌,member list為結構體成...

C語言學習八結構體

為什麼需要結構體,看 include struct student 定義乙個學生型別,裡面有age,score,然後可以定義這個型別的變數 int main void int age float score char int age2 float score2 char 2 return 0 定義結...