在C数组中插入元素

时间:2013-01-23 22:31:26

标签: c

  

可能重复:
  Inserting characters in the middle of char array

我需要在静态数组中的2个元素之间插入元素。我写了以下代码。如果我们的代码比这更有效,请告诉我。

int main()
{
    int a[4];

    a[0] = 10;
    a[1] = 20;
    a[2] = 30;

    int x = 15;

    memcpy(a+2,a+1,2);

    a[1] = x;

    printf("%d",a[2]);
}

1 个答案:

答案 0 :(得分:1)

您对低级别优化过于担心 - 编译器负责这一点。

如果相信最明显的代码在这种情况下也是最快的:

a[3] = a[2];
a[2] = a[1];
a[1] = x;

你不能比这简单。


以下是编译器在优化代码时可以执行的操作的示例:

https://stackoverflow.com/a/11639305/597607

(10行源代码变成4-5机器指令 - 让编译器完成它的工作!)。