我的教授和我正在就C中的+ =运算符进行一些辩论。他说+ =或= +会起作用,但他不确定= +为何起作用。

int main()
{
    int i = 0, myArray[5] = {1,1,1,1,1};

    while(i < 5)
    {
            myArray[i] += 3 + i;
            printf("%d\n", myArray[i]);
            i++;
    }

    system("pause");
}

输出将产生4、5、6、7、8。将+ =运算符更改为= +将产生相同的结果。但是,-=与=-的作用不同(这很明显,因为它将3视为3)。

因此,C专家:
  • 为什么与= +一起使用?
  • C编译器如何对待= +和+ =?
  • 最佳答案

    他错了; +==+完全不同。

    表达式x =+ 3被解析为x = (+3)
    在这里,+成为(而不是无用的)一元+运算符。 (否定的反面)

    使用一元求反运算符将表达式x =- 3解析为x = (-3)

    关于C编程: += vs =+,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5011924/

    10-11 21:38