1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 //结构体。 4 //什么是结构体。什么时候使用 5 //1.结构体类型的概念 6 // 由不相同数据类型和相同数据类型 共同组成的数据集合。 7 //基本数据类型: int float char double 8 //构造数据类型: 数组 结构体 共用体(联合体) 枚举 9 //2.结构体变量的定义 10 //结构体类型(struct) 结构体名(标识符) 11 // { 12 // 内部成员类型 成员名(变量名); 13 // 14 // }变量名列表; 15 //结构体 既可以定义为 全局变量 也可以定义为 局部变量 16 //3.结构体变量的引用 17 //4.结构体类型的初始化 18 //5.结构体是可以嵌套定义的。 19 struct student 20 { 21 char name[100];//姓名字符串 22 int tk;//听课效果 1为好 2为一般 23 }stu={"asdf",1},asd,qwe,r;//stu 为结构体 使用的名字。 第一种给结构体 起名的方法, 是使用 提示输入 24 25 void main() 26 { 27 //第二种给结构体 起名的方法。 28 struct student stu1={"zhouFan",1};//结构体的声明时 初始化赋值 29 printf("请输入这个学生的姓名:"); 30 scanf("%s",stu.name); 31 printf("请输入这个学是的学习效果:"); 32 scanf("%d",&stu.tk);//%d %c %f 需要加& 33 //%s 只需要加数组的名字 ,数组的名字 是数组的首地址。 34 printf("这个学生的姓名为:%s,学习效果为:%d ",stu.name,stu.tk); 35 printf("第二名学生的姓名为:%s,学习效果为:%d ",stu1.name,stu1.tk); 36 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 #include "string.h" 4 //结构体的应用。 5 //1.利用两个结构体的某一个内部成员 进行 加减乘除。 6 //是定义两个结构体 方便 7 //还是 定义一个结构体 写两个名字 方便。 8 struct student 9 { 10 char name[100]; 11 int qq;//钱。 12 }ls={"兰少波",5},lb={"梁彪",100}; 13 void main() 14 { 15 int sum; 16 char kk[100]; 17 sum=ls.qq+lb.qq; 18 strcat(ls.name,lb.name); 19 strcpy(kk,ls.name); 20 printf("这两名富豪一个月为:%d元 ",sum); 21 printf("这两名同学名字连接到一起为:%s",kk); 22 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 //结构体 数组 4 struct student 5 { 6 char name[100]; 7 int qq;//钱。 8 }qwer[3]; 9 void main() 10 { 11 //利用数组 处理的时候 需要下标。 12 //定义下标 13 int i; 14 int sum=0;//求和 15 for(i=0;i<3;i++) 16 { 17 printf("请输入第%d名同学的名字:",i+1); 18 scanf("%s",qwer[i].name); 19 printf("请输入第%d名同学的存款:",i+1); 20 scanf("%d",&qwer[i].qq); 21 sum=sum+qwer[i].qq; 22 } 23 printf(" ---------------------------------- "); 24 for(i=0;i<3;i++) 25 { 26 printf("请输入第%d名同学的名字:%s ",i+1,qwer[i].name); 27 printf("请输入第%d名同学的存款:%d ",i+1,qwer[i].qq); 28 } 29 printf("这3名总额度为:%d",sum); 30 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 //结构体 数组 4 struct student 5 { 6 char name[100];//姓名 7 int id;// 学号aaa 8 }qwer[5]={{"lala",1},{"haha",2},{"hehe",3},{"aaa",4},{"qqq",5}}; 9 //根据学号的奇偶数 把名字分开,并输出。 10 //奇数号 输出 存放在一个结构体数组中 并排序大=》小 输出 整个结构体的内容 11 //偶数号 输出 存放在一个结构体数组中 并排序小-》大 输出 12 void main() 13 { 14 //只对这id 进行存储 15 int i; 16 int ou[5],ji[5],count1=0,count2=0; 17 for(i=0;i<5;i++) 18 { 19 if(qwer[i].id%2==0)//偶数 20 { 21 printf("姓名:%s,偶数 学号为:%d ",qwer[i].name,qwer[i].id); 22 ou[count1]=qwer[i].id; 23 count1++; 24 } 25 else 26 { 27 printf("姓名:%s,奇数 学号为:%d ",qwer[i].name,qwer[i].id); 28 ji[count2]=qwer[i].id; 29 count2++; 30 } 31 } 32 33 printf("先输出偶数数组 "); 34 for(i=0;i<count1;i++) 35 { 36 printf("id为:%d ",ou[i]); 37 } 38 printf(" 在输出 奇数数组 "); 39 for(i=0;i<count2;i++) 40 { 41 printf("id为:%d ",ji[i]); 42 } 43 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 struct student 4 { 5 char name[100]; 6 int id; 7 }stu={"zhoufan",1007}; 8 void print(struct student stu)//结构体打印函数 9 { 10 printf("传参之后:姓名:%s,学号为:%d",stu.name,stu.id); 11 12 } 13 14 void main() 15 { 16 //结构体。 17 //普通结构体的定义 使用 引用方式 简单的应用. 18 //结构体数组的定义 使用 引用方式 简单的应用。 19 //传参的使用 20 //结构体指针使用的方法。 21 22 print(stu);//调用的打印函数 23 //传递参数的时候 只需要 放 结构体变量名 24 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 struct student 4 { 5 char name[100]; 6 int id; 7 }stu[5]={{"a",1},{"b",2},{"c",3},{"d",4},{"e",5}}; 8 9 void dy(struct student stu[],int len) 10 { 11 int i;//下标 12 for(i=0;i<len;i++) 13 { 14 printf("姓名:%s,学号:%d ",stu[i].name,stu[i].id); 15 } 16 17 } 18 void main() 19 { 20 //结构体数组 传参。 21 22 dy(stu,5); 23 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 struct student 4 { 5 char name[3];//名字 8 6 double ck;//存款 8 7 int id;//学号 8 8 9 }stu; 10 //结构体的字节数 等于 结构体内部各成员字节数总和。 11 12 //在结构体/共用体中 有一个规则 短类型 会向长类型 补齐。 13 void main() 14 { 15 //struct student stu; 16 printf("总字节数:%d",sizeof(stu)); 17 }
1 /* Note:Your choice is C IDE */ 2 #include "stdio.h" 3 //共用体 也叫联合体。 4 //共用体内 所有成员都会共用最长成员的地址。 8 5 6 7 //共用体。 8 union Data 9 { 10 int i; // 4 11 char ch; //4 12 int f;//4 13 }da; 14 15 void main() 16 { 17 da.i=100; 18 printf("da.i=%d ",da.i); 19 da.ch='a';//97 20 printf("da.ch=%c ",da.i); 21 da.f=10000; 22 printf("da.f=%d ",da.f); 23 24 // int a=5; 25 // a=1001123; 26 // a=4523; 27 // a=100; 28 // printf("输出的结果为:%d",a); 29 30 31 printf("第一波全部输出之后的: "); 32 printf("da.i=%d ",da.i); 33 printf("da.ch=%c ",da.i); 34 printf("da.f=%d ",da.f); 35 36 37 38 printf("共用体的字节数:%d",sizeof(da)); 39 }