提问人:user3737377 提问时间:8/13/2023 最后编辑:pmacfarlaneuser3737377 更新时间:8/13/2023 访问量:78
赋值运算符 += 与先前声明的变量的用法与声明的变量?
Assignment operator += usage with earlier declared vs declared variable?
问:
我是 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);
答:
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
将其添加到 并将其存储在 中。它与以下相同:x
f
f
f = f + x;
当你声明时,你不能向它添加任何东西,因为它在这一点上不存在 - 因此是错误的。f
f=+1
使用 AS 赋值。f
1
+1 == 1
1赞
Ramy Nabil
8/13/2023
#3
操作
x += i;
相当于
x = x + i;
因此,在使用 += 运算符之前,x 最初应该有一个值,并且不能在变量的定义中使用 += 运算符。
评论
+=
与 不同。=+
=+
=-
f=-i
f =- i
f = -i
+=
-=