【问题标题】:When creating an array in C, why can't I create it first and then define it? [duplicate]在C中创建数组时,为什么不能先创建再定义呢? [复制]
【发布时间】:2021-12-09 15:05:19
【问题描述】:

我正在尝试学习 C 以应对挑战。我以前从未对低级编程语言感兴趣。我现在将在下面创建两个不同的代码块作为示例。我在这里遇到的问题与数组定义和生成有关。我对此真的很陌生,如果我犯了一个错误,你能以一种解释的方式指导我吗?

样本1

int main()
{
    char first_name[] = "Joe";
    printf("My name is %s\n", first_name);
}

样本2

int main()
{
    char first_name[];
    first_name = "Joe";
    printf("My name is %s\n", first_name);
}

样本3

int main()
{
    char first_name[];
    first_name[] = "Joe";
    printf("My name is %s\n", first_name);
}

只有 example1 正在运行。

我了解到,在 c 中我们可以先创建一个变量,然后通过定义它来使用它。但是当我尝试对数组执行此操作时,出现错误并且代码不起作用。这是什么原因?根本区别是什么?

【问题讨论】:

  • 失败的是分配,而不是定义。您不能分配数组。您可以在定义它们时初始化它们(这是您的第一个示例所做的)。
  • 我现在明白了。 C 真的很难(不同)。 JavaScript 之后听起来很不一样。我需要改变我的观点。总之,我认为这个问题的答案如下。 “它没有发生,因为它没有发生”

标签: arrays c variables char


【解决方案1】:

第一点是你必须知道如何在C编程中声明和初始化数组。

Sample1:在这种情况下,您声明并初始化了数组 first_name;

Sample2 和 Sample2:您还没有声明和初始化数组 first_name;

结论:声明数组示例“type arrayName [arraySize];” 和初始化数组示例 double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; 或余额[4] = 50.0;

【讨论】:

    猜你喜欢
    • 2017-03-28
    • 1970-01-01
    • 2016-03-08
    • 2010-12-01
    • 2012-11-22
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多