赋值运算符 += 与先前声明的变量的用法与声明的变量?

Assignment operator += usage with earlier declared vs declared variable?

提问人:user3737377 提问时间:8/13/2023 最后编辑:pmacfarlaneuser3737377 更新时间:8/13/2023 访问量:78

问:

我是 C 的新手,有点困惑。我有代码,在声明时使用带有变量的运算符,但它给了我这个运算符的错误,但在反向使用时工作正常,即.请解释一下为什么?+==+

代码如下:

  int i = 0;
  int g = 99;
  do
  {
    int  f += i;   //Here += is throwing error and =+ is working fine why?
    printf("%-6s = %d ","This is",f);
    i++;
  } while(i<10);
Error as 
ff.c:16:11: error: invalid '+=' at end of declaration; did you mean '='?
    int f += i;
          ^~
          =
1 error generated.

它是这样工作的:

  int i = 0;
  int g = 99;
  do
  {
    int  f =+ i;   //Here += is `your text throwing error and =+ is working fine why?
    printf("%-6s = %d ","This is",f);
    i++;
  } while(i<10);
c 赋值运算符

评论

0赞 Uwe Keim 8/13/2023
生成哪个错误?
4赞 0___________ 8/13/2023
+=与 不同。=+
0赞 BoP 8/13/2023
在古代 C 历史中,运算符实际上是和最初。然而,在写这篇文章时,因为他们不知道它是注定的还是.因此,任务更改为 and(50 多年前)。=+=-f=-if =- if = -i+=-=

答:

1赞 Some programmer dude 8/13/2023 #1

定义

int f =+ 1;

真的是一样的

int f = +1;

也就是说,您正在使用值 进行初始化。f+1

在定义时初始化变量时,只能初始化它,而不能修改它。

评论

0赞 user3737377 8/13/2023
所以这个 int f = +1;意味着 f 被赋值为 1 而不是其他什么都没有,对吧?
1赞 0___________ 8/13/2023
是的。与 is 不相同>==>
1赞 0___________ 8/13/2023 #2

+=是一个特殊的操作员,这是完全不同的东西。C=+

f += x将其添加到 并将其存储在 中。它与以下相同:xfff = f + x;

当你声明时,你不能向它添加任何东西,因为它在这一点上不存在 - 因此是错误的。f

f=+1使用 AS 赋值。f1+1 == 1

1赞 Ramy Nabil 8/13/2023 #3

操作

x += i;

相当于

x = x + i;

因此,在使用 += 运算符之前,x 最初应该有一个值,并且不能在变量的定义中使用 += 运算符。