zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    存储器结构、cache、DMA架构分析--【原创】
    驱动开发--【字符设备、块设备简介】【sky原创】
    如何在博客园上面显示自己定义的头像--【sky原创】
    程序执行的过程分析--【sky原创】
    如何在linux下检测内存泄漏(转)
    register 用法注意与深入--【sky原创】
    volatile的深入理解--【sky原创】
    【sky第二期--PID算法】--【智能车论坛】
    滤波电容的选择
    实现开发板与ubuntu的共享--根文件系统NFS--Samba共享【sky原创】
  • 原文地址:https://www.cnblogs.com/ZJ-CN/p/12274453.html
Copyright © 2011-2022 走看看