結構體的基本操作,結構體基本操作
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 }