zoukankan      html  css  js  c++  java
  • 结构体(第十四章 )

    ※目录:

     

    一、结构体简单运行实例

     

    二、结构体具体使用

     

    1. 声明
    2. 定义
    3. 初始化
    4. 访问

     

    三、结构数组

     

    四、指向结构的指针

     

    1. 声明初始化
    2. 访问

     

    一、结构体最简单的运行实例

    结构体是描述结构如何组合的主要方法。

    以下为创建图书目录的一个简单实例:

    #include<stdio.h>
    #define MaxTitle 41
    #define MaxAuther 31
    
    struct Book{//单词book为一个可选标记
        char title[MaxTitle];
        char auther[MaxAuther];
        float value;
    };//结构声明
    
    int main(void){
        struct Book library;//定义结构变量
        printf("请输入书名:
    ");
        gets(library.title);
        printf("请输入作者名:
    ");
        gets(library.auther);
        printf("请输入价格:
    ");
        scanf("%f",&library.value);
        printf("《%s》自 %s:(%.2f)元
    ",library.title, library.auther, library.value);
        printf("完成.
    ");
    
        return 0;
    }

     运行示例:

    请输入书名:
    Dog
    请输入作者名:
    Lisa
    请输入价格:
    12
    《Dog》自 Lisa:(12.00)元
    完成.
    
    Process returned 0 (0x0)   execution time : 43.283 s
    Press any key to continue.
    

    二、结构体的具体使用

    1.建立结构声明:

    struct Book{//单词book为一个可选标记
        char title[MaxTitle];
        char auther[MaxAuther];
        float value;
    };//结构声明
    • 可选标记:Book

    2.定义结构变量

    经过声明已经描述了结构如何组合,接下来“创建一个结构变量”。

    int main(void){
        struct Book library;//定义结构变量
        //必须定义变量后方可运用.........
    
        return 0;
    }

    编译器创建一个变量library,编译器使用book模板为该变量分配空间,

    例如:

    struct Book a, b, *c;

    ps:声明和定义的合并

    声明结构和定义结构变量可以被合并成一步,如下(不需要使用标记):

    struct { //无标记
        char title[MaxTitle];
        char auther[MaxAuther];
        float value;
    }library;
    只可使用一次,如果要反复使用见后面typedef。

    3.初始化结构

    前面的例子没有进行初始化,初始化见下:

    struct Book library{
         "小狗钱钱",
         "博多舍费尔",
          34
    };

    如要进行指定初始化:

    struct Book d { .value = 10.99 };

    4.访问结构成员

    gets(library.title);
    //
    scanf("%f",&library.value);

    三、结构数组

    把Book程序扩展成可以使用更多的书。

    #include<stdio.h>
    #define MaxTitle 41
    #define MaxAuther 31
    #define MaxBooks 100
    
    struct Book{
        char title[MaxTitle];
        char auther[MaxAuther];
        float value;
    };//建立结构体
    
    int main(void){
        struct Book library[MaxBooks];//定义结构数组
        //......
    }

    这是表示每个成员:

    library[0].value;

    四、指向结构的指针

    1.声明和初始化指针

    //声明很简单
    struct guy * him;

    关键字struct ,结构标记 guy, 然后是一个*号,再加结构名。

    ps:声明之后意味着him可以指向任何一个 guy 类型的结构。

    如果 Tom 是一个guy类型的结构,可以:

    him = &Tom;//表示地址使用取址符

    而如果是个结构数组:

    him = &Hengzhi[0];

    2.如何用指针访问成员

    以下是三种方法:

    him->income is fellow[0].income if him == &fellow[0] //最常用的方法
    
    follow[0].income == (*him) .income
    
    barney.income == (* him) .income == him->income
  • 相关阅读:
    hdu 3367 Pseudoforest
    hdu 2489 Minimal Ratio Tree
    hdu 4009 Transfer water
    poj 3164 Command Network
    hdu 3926 Hand in Hand
    hdu 3938 Portal
    5-26日(面经总结)
    5-25日
    5-21日|5-22日
    5-13日记录|5-14日
  • 原文地址:https://www.cnblogs.com/yangf428/p/11246417.html
Copyright © 2011-2022 走看看