社区
Java SE
帖子详情
c语言和java赋值的区别
yuck0419
2013-11-03 11:51:53
a=b+(a=b)*0
上面这个式子在java中可以实现两数的交换(不考虑越界,且只考虑整型),但是在c语言中却不行,有高手 能讲一讲为什么吗?详细一点,谢谢。。
...全文
255
9
打赏
收藏
c语言和java赋值的区别
a=b+(a=b)*0 上面这个式子在java中可以实现两数的交换(不考虑越界,且只考虑整型),但是在c语言中却不行,有高手 能讲一讲为什么吗?详细一点,谢谢。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
想喝咖啡的貓
2013-11-04
打赏
举报
回复
a=b+(b=a)*0 我比较怀疑,不同的c编辑器下,是不是同一个结果。
尘缘udbwcso
2013-11-04
打赏
举报
回复
计算顺序的问题
rumlee
2013-11-04
打赏
举报
回复
这种硬要用一个表达式来做,没啥意义,其实c一个表达式也是可以做到的啊。 如下面这个表达式就可以 (a=a+b)+(b=a-b)+(a=a-b);
rumlee
2013-11-04
打赏
举报
回复
好像c确实不行,那应该是c语言对于这个表达式的处理都是先赋值,然后再开始计算表达式。
sunbo624
2013-11-04
打赏
举报
回复
两种语言对语法的描述不同
yuck0419
2013-11-04
打赏
举报
回复
引用 3 楼 rumlee 的回复:
如果在c中a=b+(b=a)*0这样写不行,那你改成a=(b=a)*0+b试试呢,把加好两边对调一下看看。
不可以。 这两个表达式的值都是一样的,都会变成a的值..
rumlee
2013-11-04
打赏
举报
回复
如果在c中a=b+(b=a)*0这样写不行,那你改成a=(b=a)*0+b试试呢,把加好两边对调一下看看。
rumlee
2013-11-04
打赏
举报
回复
没具体测试过这个问题,我猜应该是c与java对于表达式中各个变量的入栈顺序不一样,可能一个是从左至右,一个从右至左。我仅仅是猜的,没有实际测试,你可以实际测试一下。
yuck0419
2013-11-03
打赏
举报
回复
上面式子打错了
a=b+(b=a)*0
简易
C语言
编译器
Java
源代码
此款
C语言
编译器可以支持变量的声明和
赋值
、支持算术运算、逻辑运算、支持if...else...、for循环、while循环、支持scanf和printf以及一些复合语句。该程序的功能是:(1)词法分析;(2)语法分析;(3)产生中间...
关于
C语言
指针和
java
引用的思考.pdf
关于
C语言
指针和
Java
引用的思考 该资源主要讨论了
C语言
指针和
Java
引用的概念、实现、差异和应用场景。下面是对该资源的详细分析和知识点总结: 1.
C语言
指针:
C语言
中,函数的内存都是分配在栈中的,当该函数...
浅谈c i++与
java
i++的
区别
但是,
c语言
和
java
语言在使用increment运算符时存在着一些
区别
,这篇文章将深入探讨
c语言
和
java
语言中i++的
区别
。 首先,让我们来看一下
c语言
中的i++。在
c语言
中,i++是后缀自增运算符,也就是说,它会先返回变量的...
c语言
经典例题和答案 50道
:“答案自己做的,都测试了的,就最后两道没做(一道链表嫌麻烦,一道子串是
Java
里的概念)” 表明这份资源是一个个人完成的
C语言
习题集,其中包含了作者亲自编写并验证过的答案,这为学习者提供了实践和参考的价值...
郝斌
C语言
详细笔记(附源码).pdf
-CCVC6.0.cpp14c1.CpuCpu2.Helloword--3.AB4”可能表示对
C语言
及其与其他编程语言(如Fortran, Basic, Pascal, Visual Basic, C++,
Java
, C#等)和操作系统(如Unix, Linux, Windows等)关系的一个概览。此外,提及...
Java SE
62,636
社区成员
307,271
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章