结构体

原文链接:http://www.orlion.ga/758/

struct point {
    double x, y;
};

    这样定义了point这个标识符,既然是标识符,那么其的命名规则就是与变量一样,但是非意味着一个变量而是表示一个种,这种标识符在C语言中化Tag,整个struct
point {double x , y;}
可以看作是一个路名,就像int或者是double一样,只不过这是单复合类型,如果用这类型名来定义变量,可以形容:

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

    这样p1和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 = {1.0 , 2.0}; struct point p2 = p1;p1 =
p2;这样可。