C语言入门:结构体的概要

 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 }
原文地址:https://www.cnblogs.com/ZJ-CN/p/12274453.html