C 赋值运算符的实现

C 赋值运算符的实现,c,assignment-operator,C,Assignment Operator,我可以用级联的方式写赋值运算符吗?下面是两条语句,我如何写它们 total_marks/=1000; total_marks*=100; 我们能做点什么吗?但是我们把100放在哪里 total_marks*=total_marks/=1000; C++中可以编写例如 ( total_marks/=1000 ) *= 100; 然而,在C语言中,这段代码不会编译 < C(和C++)中,可以使用逗号运算符< /p>编写以下方法 total_marks/=1000, total_m

我可以用级联的方式写赋值运算符吗?下面是两条语句,我如何写它们

 total_marks/=1000;
 total_marks*=100;
我们能做点什么吗?但是我们把100放在哪里

total_marks*=total_marks/=1000;     

C++中可以编写例如

( total_marks/=1000 ) *= 100;
然而,在C语言中,这段代码不会编译

< C(和C++)中,可以使用逗号运算符< /p>编写以下方法
total_marks/=1000, total_marks *= 100;

我的意思是如果你需要这个表达式,C++中的

你可以写例如

( total_marks/=1000 ) *= 100;
然而,在C语言中,这段代码不会编译

< C(和C++)中,可以使用逗号运算符< /p>编写以下方法
total_marks/=1000, total_marks *= 100;

我的意思是如果你在表达式中需要它。

否。
/=
*=
运算符的结果不会返回左值,因此不能用于另一个赋值的左边。简单、明显、易读的内容有什么错:

total_marks = (total_marks / 1000) * 100;

否。
/=
*=
运算符的结果不会返回左值,因此不能用于其他赋值的左侧。简单、明显、易读的内容有什么错:

total_marks = (total_marks / 1000) * 100;


代码中没有赋值运算符。我认为你需要澄清术语。总分=总分/1000;它将值赋给total_marks。不是吗?@juanchopanza你会怎么称呼
/=
*=
?@user3386109我应该把100放在哪里?简单易读的
total_marks=(total_marks/1000)*100
有什么问题吗?你的代码中没有赋值运算符。我认为你需要澄清术语。总分=总分/1000;它给总分数赋值。不是吗?@juanchopanza你会怎么称呼
/=
*=
?@user3386109我应该把100放在哪里?简单易读的,
总分数=(总分数/1000)有什么不对在C中,赋值操作符返回rValue.C++中的运算符通常返回引用给正在执行该操作的对象。在本例中为“总分”。在C中,这些操作返回值而不是引用,因此不能赋值。@索尼在C中,赋值操作符返回rValue:C++中的运算符通常返回对正在执行该操作的对象的引用。在本例中为“总分”。在C中,这些操作返回一个值,而不是一个引用,因此不能赋值。我同意你的建议,但不同意答案的第一行。赋值运算符从右向左求值。例如
inta=10,b=2;a+=b*=3
完全有效,并设置
a=16
b=6
。你是对的,但这无助于他做他想做的事。我同意你的建议,但不同意答案的第一行。赋值运算符从右向左求值。例如
inta=10,b=2;a+=b*=3
是完全有效的,并设置
a=16
b=6
。你是对的,但这无助于他做他想做的事。