有人可以解释如何在C编程中将元素追加到数组中吗?

use*_*078 15 c arrays integer append

如果我想将数字附加到初始化为int的数组中,我该怎么做?

int arr[10] = {0, 5, 3, 64};
arr[] += 5; //Is this it?, it's not working for me...
Run Code Online (Sandbox Code Playgroud)

我最后想要{0,5,3,64,5}.

我习惯使用Python,而在Python中有一个名为list.append的函数,它会自动为您添加一个元素到列表中.C中是否存在此类功能?

小智 14

int arr[10] = {0, 5, 3, 64};
arr[4] = 5;
Run Code Online (Sandbox Code Playgroud)

编辑: 所以当我这样做时,我被要求解释发生了什么:

int arr[10] = {0, 5, 3, 64};
Run Code Online (Sandbox Code Playgroud)

您创建一个包含10个元素的数组,并为数组的前4个元素分配值.

还要记住, arr从索引开始,arr[0]以索引为arr[9]10个元素结束

arr[0] has value 0;
arr[1] has value 5;
arr[2] has value 3;
arr[3] has value 64;
Run Code Online (Sandbox Code Playgroud)

之后,数组包含垃圾值/零,因为您没有分配任何其他值

但是当你这样做时,你仍然可以再分配6个值

arr[4] = 5;
Run Code Online (Sandbox Code Playgroud)

您将值5分配给数组的第五个元素.

直到你的最后的指数值分配你可以这样做arr就是arr[9];

对不起,如果我的解释不稳定,但我从来没有擅长解释事情.

  • 这不是附加 OP 所指的类型。追加是在不使用其索引的情况下添加到数组的末尾。 (16认同)
  • 请编辑您的问题,以添加有关代码如何工作以及如何解决OP问题的说明.SO上的许多海报都是新手,不会理解您发布的代码. (2认同)

Ama*_*dan 5

将值放入数组的方法只有两种,一种只是另一种的语法糖:

a[i] = v;
*(a+i) = v;
Run Code Online (Sandbox Code Playgroud)

因此,要将某些内容作为索引 4 处的元素,除了 之外别无选择arr[4] = 5

  • @Musa:我从0开始数:) (7认同)
  • 第四个元素将位于“arr[3]”,不是吗? (3认同)
  • 虽然我理解你用第 0、1、2、3、4 来表示“4th”的意思,但这个措辞 * 是 * 有点误导...... (3认同)
  • 该数组似乎被声明为“int arr[10]”,它提供了足够的空间。 (2认同)