1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 6 //定義一個結構體 7 //定義一個數據類型。固定內存大小的別名,還沒有分配內存 8 /*struct Teacher 9 { 10 char name[5]; 11 int age; 12 };*/ 13 typedef struct Teacher 14 { 15 char name[64]; 16 int age; 17 int id; 18 }Teacher; 19 20 21 struct Student 22 { 23 char name[64]; 24 int age; 25 }s1,s2;//定義類型 同時定義變量 26 27 struct 28 { 29 char name[64]; 30 int age; 31 32 }s3, s4; //匿名類型 定義變量 33 34 //初始化變量的三種方法 35 //定義變量 然後初始化 36 // 37 Teacher t7 = { "aaaaa", 18, 01 }; //全局 38 struct Student2 39 { 40 char name[64]; 41 int age; 42 }s5 = { "names", 21 }; 43 44 struct 45 { 46 char name[64]; 47 int age; 48 49 }s6 = { "names", 30 }; 50 int main() 51 { 52 //struct Teacher t1; //告訴C編譯器給我分配內存 53 Teacher t1; 54 Teacher t2 = { "aaaaa", 18, 01 }; //定義變量 然後初始化 55 56 t1.age = 32; //t1. 的.是尋址操作 計算t1相對於t1大變量的 57 //偏移量 ===》計算在cpu中進行,沒有操作內存 58 59 //通過指針的方式 操作 內存空間 60 { 61 Teacher *p = NULL; 62 p = &t2; 63 printf("p->age:%d\n", p->age); //-> 是尋址操作 相對於t2大變量的 64 //偏移量 ===》計算在cpu中進行,沒有操作內存 65 printf("p->name:%s\n", p -> name); 66 } 67 strcpy(t1.name, "張三"); 68 printf("ti.name%s\n", t1.name); 69 system("pause"); 70 return 0; 71 }