• 结构体


    /*结构体形式 struct 结构体名 变量
    结构体变量定义的三种形式
    struct student
    {
    变量类型 成员1;(成员也可以是数组)
    ...
    变量类型 成员n;
    };//一定要有分号
    struct student stu(变量);变量可以是多个


    struct student
    {
    变量类型 成员1;(成员也可以是数组)
    ...
    变量类型 成员n;
    }stu1,stu2;


    struct
    {
    变量类型 成员1;(成员也可以是数组)
    ...
    变量类型 成员n;
    }stu1,stu2;
    */

    int main(int argc, char *argv[]) {
    struct
    {
    char name[20];
    char xb;
    int age;
    float cj;
    }stu1,stu2;


    strcpy(stu1.name,"zhangsan");
    stu1.xb = 'm';
    stu1.age = 19;
    stu1.cj = 89.5;
    printf("%s %c %d %.1f ",stu1.name,stu1.xb,stu1.age,stu1.cj);

    strcpy(stu2.name,"lisi");
    stu2.xb = 'w';
    stu2.age = 17;
    stu2.cj = 79.5;
    printf("%s %c %d %.1f ",stu2.name,stu2.xb,stu2.age,stu2.cj);


    struct student
    {
    char name[20];
    char xb;
    int age;
    float cj;
    };
    struct student stu;
    strcpy(stu.name,"wangwu");
    stu.xb = 'm';
    stu.age = 20;
    stu.cj = 99.5;
    printf("%s %c %d %.1f",stu.name,stu.xb,stu.age,stu.cj);
    return 0;
    }

    运行结果

     

    strcpy功能   strcpy(参数1,参数2);   //将参数2复制到参数1内仅适用于字符串复制

    strcat功能   strcat(参数1,参数2);   //将参数2的值打印到参数1后

    strlen功能  //获取字符串的长度    例如:char k[20] = "ajfkdfkjdk";  int i;  i = strlen(k);  printf("%d",i);  //结果为10

    char k[20];
    scanf("%s",&k);
    int i;
    i = strlen(k);
    printf("%d",i);

    运行结果

    typedef函数

    函数形式  typedef   原函数类型    新函数类型//相当于将新函数类型等价于原函数类型

    如:

    typedef int inter;
    inter i = 10;
    int j = 5;
    printf("%d ",i);
    printf("%d",j);

    运行结果

    int main(int argc, char *argv[]) {
    typedef struct stu   //stu可有可无
    {
    char name[20];
    char xie;
    int age;
    }student;

    student a;     //定义结构体变量a
    strcpy(a.name,"lisi");
    a.xie = 'm';
    a.age = 13;
    printf("%s %c %d ",a.name,a.xie,a.age);
    return 0;
    }

    运行结果

    //结构体的嵌套 

    int main(int argc, char *argv[]) {
    struct cade
    {
    int yuwen;
    int shuxue;
    int yinyu;
    };
    struct person
    {
    char name[20];
    int age;
    struct cade cj;   //将结构体struct cade嵌套到结构体struct person中
    };
    struct person basic = {
    "xiaoming",19,{89,85,92},
    };
    printf("%s %d %d %d %d",basic.name,basic.age,basic.cj.yuwen,basic.cj.shuxue,basic.cj.yinyu);
    return 0;
    }

    运行结果

    结构体指针

    int main(int argc, char *argv[]) {
    typedef struct stu
    {
    char name[20];
    char xb;
    int age;
    }student;
    student a = {"wangwu",'m',19};
    student *p = &a;
    printf("%s %c %d ",(*p).name,(*p).xb,(*p).age);
    printf("%s %c %d ",p->name,p->xb,p->age);        //(p->)相当于((*p).);

    //可以对结构体里面的内容进行修改 如下(未使用结构体指针时也可以对结构体里面的内容进行修改 直接修改就行)

    strcpy(p->name,"zhangsan");  
    p->xb = 'f';
    p->age = 50;
    printf("%s %c %d ",(*p).name,(*p).xb,(*p).age);
    return 0;
    }

    运行结果

     

    枚举类型

    int main(int argc, char *argv[]) {
    enum color{red,green,black,blue};//枚举类型 ,在第二个变量之后不能将其赋值为1,因为在第二个变量之前的数不能为负数,也可以不对变量进行赋值,那么默认值为0开始,依次加1
    int icolor;
    scanf("%d",&icolor);//根据输入的数字进行判断
    switch(icolor)
    {
    case red:
    printf("this is red ");
    break;
    case green:
    printf("this is green ");
    break;
    case black:
    printf("this is black ");
    break;
    case blue:
    printf("this is blue ");
    break;
    default:
    printf("??? ");
    break;
    }

    return 0;
    }

    运行结果

    共用体

    int main(int argc, char *argv[]) {
    //共用体的大小是所包含的数据成员中最大内存长度的大小
    union student //共用体也称联合体,定义变量可以与结构体的一样 ,共用体定义的是一块为所有数据成员共享的内存
    {
    int age;
    char u;
    };
    union student a;
    a.age = 65; //共用体只需初始化一个变量就够了,但其类型必须和共用体的第一个成员的类型一致,如第一个成员的是整型的,那么初始化的这个变量也必须是整型的
    printf("%d ",a.age);
    printf("%c ",a.u); //改变共用体的一个成员其他的成员也会随之改变
    return 0;
    }

  • 相关阅读:
    php 无限极分类
    高德地图随笔
    安全随笔
    关于专线映射问题
    js小技巧总结
    php+ajax 文件上传
    去除数组中重复的元素
    关于ueditor插入不了动态地图
    vue.js 安装
    js轮播
  • 原文地址:https://www.cnblogs.com/2277098974-qqcom/p/6835931.html
Copyright © 2020-2023  润新知