c语言中,x*=2是什么意思?

如题所述

--x是前置自减,还有x++后置自减。--x把x-1然后返回x,也就是说返回的是一个变量,是个左值,可以赋值,--x=2的效果就是x加1后又等于了2,加1白加了。x--返回x的值,然后x加1,这个返回的是个右值,不能放在=的左边,也就是说x--=2是错的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-10
“*=”是复合赋值运算符。
x*=y
等价于
x = (x) * (y)
上述表达式等价于
x = x * 2

样例:
int x = 2, y = 1;
x *= y - 1;
printf("%d", x);

输出:0
因为x *= y - 1等价于x = x * (y - 1)
第2个回答  推荐于2018-02-27
说一下原理:
x=x*2;
编译器在语法翻译的时候最终会用逆波兰式来表示(其他的也可以的)
也就是翻译成x*=2的形式。
所以我们书写的时候把x=x*2写成x*=2,可以提高程序的效率。
大三的时候编译原理有讲的。
祝你好运!本回答被网友采纳
第3个回答  2020-12-25

“*=”是复合赋值运算符。

x*=y

等价于

x = (x) * (y)

上述表达式等价于

x = x * 2

样例:

int x = 2, y = 1;

x *= y - 1;

printf("%d", x);

输出:0

因为x *= y - 1等价于x = x * (y - 1)

扩展资料

如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。

指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。

指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。

本回答被网友采纳
第4个回答  2012-03-23
意思是x=x*2