C中数组的算术运算

时间:2014-11-21 13:40:15

标签: c arrays

我正在尝试对C中的数组值应用算术运算。例如,如果我想为数组的每个值添加数字x,我应该将它分别添加到每个值,或者我可以改为将x添加到整个数组中(因此它会自动将其添加到数组的每个值中)。

5 个答案:

答案 0 :(得分:3)

  

如果我想为数组的每个值添加一个数字x,我应该将它单独添加到每个值

是的,你需要循环完成。 C不提供操作员一次操作整个数组。

  

我可以将x添加到整个数组

一个表达式,类似于向数组中添加int,例如array+x,将编译,但它完全是一个不同的操作:当在算术运算中使用数组名时,它被视为指向数组的初始元素的指针,因此{{1的结果表达式与array+x(指向&array[x]的{​​{1}}元素的指针)相同。

array应用于数组将无法编译。

答案 1 :(得分:3)

创建一个循环遍历数组的函数,并将您的操作手动应用于数组中包含的每个值。没有“buildin”功能可以在C

中为您完成

答案 2 :(得分:1)

你必须像使用各种语言一样遍历整个数组。

答案 3 :(得分:1)

这是一个处理它的简单函数:

void Add(int* toIncrement, int size, int increaseBy){
    for(int i = 0; i < size; ++i){
        toIncrement[i] += increasedBy;
    }
}

你可以像这样使用它:

int thirteens[10] = {0};

Add(thirteens, 10, 13);

请注意,如果您想在本地编写Add,可以这样做并避免抛出一堆变量。

此外,如果您想要乘法或其他内容,只需复制该函数,更改函数名称并在*=的位置使用+=

对数组中每个元素的任何修改都是以这种方式在C中完成的。

答案 4 :(得分:1)

这里有一个简单的例子,可以帮助理解数组操作的概念     / *     数组上的基本数学     * /

void setup()
{
  Serial.begin(9600);
  int vector[] = {2, 4, 8, 3, 6};
  int i;
  for (i = 0; i < 5; i = i + 1) 
    {
    vector[i] = vector[i]*3;
    Serial.println(vector[i]);
    }
  }
void loop()
{  
}