• 十三、结构类型(2)——结构


    声明结构的形式

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

    对于第一种和第二种形式,都声明了结构point。但是第三种形式没有声明point,只是定义了两个变量。

    结构变量

    struct date today;
    today.month=06;
    today.day=19;
    today.year=2005;

     结构初始化

    #include<stdio.h>
    
    struct date{
        int month;
        int day;
        int year;
    };
    
    int main()
    {
        struct date today={07,31,2014
        };
        struct date thismonth={.month=7,.year=2014
        };
        
        printf("Today’s date is: %i-%i-%i.
    ",today.year,today.month,today.day);
        printf("This month is: %i-%i-%i.
    ",thismonth.year,thismonth.month,thismonth.day);
        
        
        return 0;
     }  
     
     

    结构成员

     (1)结构和数组有点像。

    (2)数组用[]运算符和下标访问其成员。

    a[0]=10;

    (3)结构用.运算符和名字访问其成员。

    today.day
    student.firstName
    p1.x   
    p1.y   
    //当p1表示的是结构体名时,x,y表示变量名

    结构运算

     (1)要访问整个结构,直接用结构变量的名字。

    (2)对于整个结构,可以做赋值、取地址,也可以传递给函数参数

    p1=(struct point){5,10};  //相当于p1.x=5;p2.y=10;
    p1=p2; //相当于p1.x=p2.x;p1.y=p2.y;

    数组无法做这两种运算

     复合字面量

    today=(struct date){9,25,2004};

    today=(struct date){.month=9,.day=25,.year=2004};

    结构指针

     和数组不同,结构变量的名字并不是结构变量的地址,必须使用&运算符

    struct date  *pDate=&today;
  • 相关阅读:
    C++ P1890 gcd区间
    C++ P1372 又是毕业季I
    C++ CF822A I'm bored with life
    C++ P4057 [Code+#1]晨跑
    C++ CF119A Epic Game
    关于树状数组的几点总结
    markdown语法
    portal开发"下拉框"“日期框”查询要怎么配置
    泛型总结--待续
    Actioncontext跟ServletActionContext的区别---未完待续
  • 原文地址:https://www.cnblogs.com/Strugglinggirl/p/9079385.html
Copyright © 2020-2023  润新知