<C> 结构体
一.结构体
1.定义:不同/相同变量类型的集合
2.初始化
3.结构体指针
以上三个方面 我们用一个例题来解释清楚:
1 #include<stdio.h> 2 3 typedef struct AA 4 { 5 int bh; 6 char* name; 7 char* tel; 8 }E; 9 10 int main() 11 { 12 struct AA a = {1,"A","111"}; 13 E b; 14 15 struct AA* p1 = &a; 16 E* p2 = &b; 17 18 b.bh = 2; 19 b.name = "B"; 20 b.tel = "222"; 21 22 printf("%d\t%s\t%s\n",a.bh,a.name,a.tel); 23 printf("%d\t%s\t%s\n",b.bh,b.name,b.tel); 24 25 (*p1).tel = "11111"; 26 p2->tel = "22222"; 27 printf("%d\t%s\t%s\n",a.bh,a.name,a.tel); 28 printf("%d\t%s\t%s\n",b.bh,b.name,b.tel); 29 }
二.结构体对齐
1.总结:结构体对齐是以最大元素对齐 微观上也是以最大元素对齐
1 #include<stdio.h> 2 3 struct AA 4 { 5 int a; 6 char b; 7 short c; 8 int d; 9 double e; 10 }; 11 12 int main() 13 { 14 struct AA a; 15 int n = sizeof(a); 16 printf("%d\n",n); 17 18 printf("%d\n",&a.a); 19 printf("%d\n",&a.b); 20 printf("%d\n",&a.c); 21 printf("%d\n",&a.d); 22 printf("%d\n",&a.e); 23 24 return 0; 25 }
2.输出结果:
3.图解:
PS:这篇真不是我写的随便 真的是没什么好写 重点在链表对结构体的实际应用上 理解万岁