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

 我来答
创作者SVQrw8zZpw
2019-08-31 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.5万
采纳率:27%
帮助的人:838万
展开全部
--x是前置自减,还有x++后置自减。--x把x-1然后返回x,也就是说返回的是一个变量,是个左值,可以赋值,--x=2的效果就是x加1后又等于了2,加1白加了。x--返回x的值,然后x加1,这个返回的是个右值,不能放在=的左边,也就是说x--=2是错的。
老冯文库
2017-06-10 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8735

向TA提问 私信TA
展开全部
“*=”是复合赋值运算符。
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Negamax
推荐于2018-02-27 · TA获得超过2723个赞
知道小有建树答主
回答量:656
采纳率:100%
帮助的人:309万
展开全部
说一下原理:
x=x*2;
编译器在语法翻译的时候最终会用逆波兰式来表示(其他的也可以的)
也就是翻译成x*=2的形式。
所以我们书写的时候把x=x*2写成x*=2,可以提高程序的效率。
大三的时候编译原理有讲的。
祝你好运!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旅游小达人Ky
高粉答主

2020-12-25 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1893
采纳率:100%
帮助的人:45.2万
展开全部

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

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)这样的仅能得到一个返回值。

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱因斯坦波
2012-03-23 · TA获得超过263个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:182万
展开全部
意思是x=x*2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式