• 结构


    //结构
        //声明结构类型
    /*
    #include<stdio.h>
    int main(int argc,char const *argv[])
    {
        struct date
        {
            int month;
            int day;
            int year;
        };
        struct date today;
    //通常和本地变量一样,在函数内部声明的结构类型只能在函数内部使用
    //所以通常在函数外部声明结构类型,这样可以被多个函数所使用的    
        
        today.month=02;
        today.day=03;
        today.year=2019;
        printf("Today's date is %i-%i-%i. ",
        today.year,today.month,today.day);
        return 0;
    }
    /*

    /*            声明结构的形式
    方一:    struct point
        {
            int x;
            int y;
        };        //注意该后面一定要有分号
        
        struct point p1,p2;
        
        p1和p2都是point里面有x和y的值

    方二:
        struct
        {
            int x;
            int y;
        } p1,p2;
        
        p1和p2都是一种无名结构,里面有x和y
        
    方三:
        struct point
        {
            int x;
            int y;
        } p1,p2;
        
        p1和p2都是point里面有x和y的值
    */

    //        结构的初始化
    #include<stdio.h>

    struct date
    {
        int month;
        int day;
        int year;
    } ;

    int main(int argc,char const *argv[])
    {
        struct date today ={02,02,2019};
        struct date thismonth={.month=7,.year=2019};
        
        printf("Today's date is %i-%i-%i. ",
        today.year,today.month,today.day);
        printf("Thismonth's %i-%i-%i. ",
        thismonth.year,thismonth.month,thismonth.day);
        
        return 0;
    }

    /*        结构成员
        结构和数组有点像
        数组用[]运算符合下标访问其成员
            a[0]=10;
        结构用 .运算符和名字访问其他成员
            today.day
            student.firstName
            p|.x
            p|.y    
    */

            结构运算
        要访问整个结构,直接用结构变量的名字
        对于整个结构,可以做赋值、取地址、也可以传递给函数参数
            p1=(struct point){5,10};//相当于p1.x=5,p1.y=10
            p1=p2; //相当于p1.x=p2.x;p1.y=p2.y;    
        //数组无法这样做

            结构指针
        和数组不同,结构变量的名字并不是结构变量的地址,必须使用&运算符
        
        struct date *pDate =&today;












           

  • 相关阅读:
    FZU-2087 统计树边(最小生成树)
    HDU-1599 find the mincost route(floyd求最小环)
    BZOJ-1191 [HNOI2006]超级英雄Hero(二分图匹配)
    FZU-2020 组合(Lucas定理)
    FZU-2232 炉石传说(二分图匹配)
    NOIP2016模拟 拼接mf(模拟)
    2016年11月10日00:26:08
    BZOJ2986 Non-Squarefree Numbers
    BZOJ3624 [Apio2008]免费道路
    BZOJ3224 Tyvj 1728 普通平衡树
  • 原文地址:https://www.cnblogs.com/lijianmin6/p/10351247.html
Copyright © 2020-2023  润新知