C语言结构体

最初的作品链接:http://www.orlion.ga/758/

struct point {
    double x, y;
};

    那样定义了point这一个标识符,既然是标识符,那么它的命名规则就和变量1样,然而不意味二个变量而是意味着三个项目,那种标识符在C语言中变成Tag,整个struct
point {double x , y;}
能够视作是3个档次名,就像是int也许是double1样,只不过那是个复合类型,若是用那一个项目名来定义变量,能够写:

struct point {
    double x , y;
} p1 , p2;

    那样p一和p2正是变量名,变量定义前边要丰盛“;”,别的协会体定义(如首先段代码)后面”;”不能够简单。

    不管用那种办法来定义point这几个Tag,以往都能够直接行使struct
point来代替类型名了,例如能够这样再重复定义多个变量:

struct point p3 , p4;

    如若在概念结构体类型的时候还要定义了变量,也足以不必写Tag,例如:

struct {
    double x , y;
} p1 , p2;

    结构体变量能够用”.”运算符来访问在那之中的分子:

#include <stdio.h>

int main(void)
{
    struct point{
        double x , y;
    } p;
    double x = 1.0;
    p.x = x;
    z.y = 2.0;
    
    struct point p2;
    
    printf("z的横坐标是:%f,纵坐标是%f\n" , z.x , z.y);
    
    return 0;
}

    结构体也能够在概念时起头化,如:

struct point p = {1.0 , 2.0};

    假诺括号中的数据比结构体的分子少,未内定的分子用0来开始化,就好像未初始化的全局变量一样。结构体赋值与基本数据类型有个别分化,必要注意一下是错误的:

struct point p;
p = {1.0 , 2.0};

    可是struct point p1 = {一.0 , 2.0}; struct point p二 = p1;p一 =
p2;那样能够。