zoukankan      html  css  js  c++  java
  • 结构体

    #include <stdio.h>
    #include <stdlib.h>
    struct dog{
      int age;
      char name[20];
      char favorite[20];
     };
    //定义结构体类型的同时,取好别名
    typedef struct person{
     int age;
     char name[20];
     struct dog pet;
    } person;
    struct book{
     //页数
     int pages;
     //价格
     float prices;
     //结构体成员又是一个结构体变量
     struct person author;
    };
    void first(){
     puts("----------结构体----------");
     //自定义一种数据类型,类型名字叫做 struct person,
     //这种类型里面有两个成员,一个age和一个name

     //struct book就是一种数据类型,相当于int。a是变量名
     struct book a = {252,42.5};//初始化内容,类似数组
     struct person b = {28,"Lisa"};//初始化部分内容,类似数组
     struct dog c = {2,"大黄","吃骨头"};
     b.pet = c;//或者 a.author.pet = c;
     a.author = b;//给结构体成员赋值
     printf("页数:%d 价格:%f 作者:%s,作者的宠物的爱好是:%s",
       a.pages,a.prices,a.author.name,
       a.author.pet.favorite);
    }

    void second(){
     int a = 10;
     int b = a;
     a = 30;
     printf("b = %d ",b);

     struct person lisa = {18,"lisa"};
     struct book c_language= {256,52.5};
     c_language.author = lisa;
     lisa.age = 20;
     printf("lisa.age = %d ",c_language.author.age);
    }
    /*结构体类型取别名的三种方式:

     * 1.定义结构体类型的同时,用typedef取别名
     * 2.定义结构体类型后,用typedef取别名
     * 3.使用宏定义define,给结构体类型定义宏实现字符替换效果
     * */
    //#define uchar unsigned char
    //类型定义,和上面使用宏定义实现的效果一样
    typedef unsigned char uchar;
    //#define person struct person
    //类型定义,和上面使用宏定义实现的效果一样
    //typedef struct person person;
    void three(){
     person a = {18,"lisa"};
     uchar b = 20;
    }


    /*测试:给下面的结构体取三个别名*/
    //第一种方式:使用宏定义
    #define A struct student
    //第二种方式:typedef类型定义
    typedef struct student B;
    //第三种方式:typedef类型定义,定义结构体的同时取别名
    typedef struct student{
     int age;
     char name[20];
    } C;
    void four(){
     A a = {18,"lisa"};
     B b = {19,"judy"};
     C c = {20,"andy"};
     printf("%d ",a.age);
     printf("%s ",a.name);
     printf("%d ",b.age);
     printf("%s ",b.name);
     printf("%d ",c.age);
     printf("%s ",c.name);
    }

    int main(void) {
      four();
      second();
     return EXIT_SUCCESS;
    }

  • 相关阅读:
    MapReduce 运行流程概要
    HDFS 读写流程概要
    Hadoop源码分析22:dfsclient概要
    Hadoop源码分析22:dfsclient概要
    Matlab安装SVM/RF工具箱的办法
    最大似然估计、最大后验概率估计、贝叶斯公式的理解
    车牌识别
    BP神经网络
    SVM中核函数的理解
    数据库面试
  • 原文地址:https://www.cnblogs.com/hzp0619/p/8660364.html
Copyright © 2011-2022 走看看