【问题标题】:Explanation of structures program结构程序说明
【发布时间】:2021-05-06 22:43:50
【问题描述】:

我遇到了这段代码:

#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"
};

是什么意思?有人可以解释一下它的含义以及这个程序的输出吗?

【问题讨论】:

  • 那么程序的输出是什么?
  • @AnttiHaapala 输出为 2 如果您以成功为驱动力,请确保它是质量驱动器
  • 那么哪些部分您到底遇到了问题?您是否尝试过更改程序中的某些内容并再次编译并运行它?
  • 我无法理解这行{ 2, "如果你被成功驱动", "确保它是质量驱动器" };意味着
  • 我是不是通过这个给m1.num、m1.mess1、m1.mess2赋值?

标签: c data-structures struct structure


【解决方案1】:
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 被分配价值“确保它是一个质量驱动器”

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多