0

我遇到了这段代码:

#include<stdio.h>
#include<string.h>

struct gospel
{
    int num;
    char mess1[50];
    char mess2[50];
} m1 = { 2, "If you are driven by success",
"make sure that it is a quality drive"
};

int main()
{
        struct gospel m2, m3;
        m2 = m1;
        m3 = m2;
        printf("\n%d %s %s", m1.num, m2.mess1, m3.mess2);

    return 0;
}

但是我无法得到 m1 =

{ 2, "If you are driven by success",
"make sure that it is a quality drive"
};

方法?有人可以解释一下它的含义以及这个程序的输出吗?

4

1 回答 1

0
struct gospel
{
    int num;
    char mess1[50];
    char mess2[50];
} m1 = { 2, "If you are driven by success",
"make sure that it is a quality drive" };

正在定义一个类型为的全局变量struct gospel

这和写作一样

struct gospel
{
    int num;
    char mess1[50];
    char mess2[50];
};

struct gospel m1 = { 2, "If you are driven by success",
"make sure that it is a quality drive" };

花括号将结构的值按顺序分配给变量 - 因此 m1.num 被分配值 2,m1.mess1 被分配值“如果你被成功驱动”,m1.mess2 被分配值“make确保这是一个高质量的驱动器”

如果您想了解有关此类初始化的更多信息,建议您阅读本文。

于 2021-02-02T18:42:16.290 回答