社区
C++ 语言
帖子详情
i = i++ 在c++和java的不同
longrenrex
2003-12-20 12:53:50
i=0
i=i++
i的值在c++,java中不同为什么?
...全文
88
1
打赏
收藏
i = i++ 在c++和java的不同
i=0 i=i++ i的值在c++,java中不同为什么?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhangyan_qd
2003-12-20
打赏
举报
回复
因为C++标准不规定编译器实现在编译类似表达式的时候的运算顺序,而Java是有规定的。所以如果看到一个C编译器编译出的结果和java是一样的,那也没有什么奇怪。
类似++的副作用这样的问题就不用再问了吧,问过几万遍了……
关于
java
和
c
++
中 i=i
++
结果
不同
的分析
学习过一门计算机语言的人一定知道j=i
++
的运算结果,整个表达式的值为i,而i的值变为i+1;那么i=i
++
又是一个什么情况呢?下面分别用
java
和 c 两种语言来做个测试:
JAVA
: public class test { public static void main(String args[]) { inti,j; i
Java
中关于i = i
++
问题
Java
中关于i = i
++
问题 之前刚学
Java
的时候一直有个i
++
的问题不明白,直到今天再次看见这个问题的时候,查找了很多大佬的博客,终于搞懂了这部分的原理。话不多说上代码: 1 int j = 0; 2 j = j
++
; 3 System.out.println(j);//输出结果为 0 以前学习C/
C
++
的时候结果是1,因为C/
C
++
的操作都是在内存中进行的。但是
Java
是有虚拟机的,由于虚拟机把内存的划分和C/
C
++
有很大的区别,所以执行的结果完全
不同
。
i=i
++
问题
转自:http://www.blog
java
.net/dreamstone/archive/2006/11/04/79058.html i=0;i=i
++
为什么等于0这个问题困扰了我好长的一段时间,结果前段时间还试图从虚拟机那个层面进行解释,但无论是线程还是方法调用都不能解释其现象,发现方向性错误,这只是一个语言的特性而已。在
java
lang spec中提到: 1、
java
运算符
java
和
C
++
中自增i
++
的区别
JAVA
和
C
++
对i
++
自增操作符的处理是
不同
的,
JAVA
是在内存中复制一份i值的拷贝再运算,而
C
++
中是直接在原值上运算。 int i = 0; i = i
++
; 在
java
中i=i
++
的运算实质是先执行在内存中复制一份i的拷贝再i
++
,然后把拷贝的i值赋给接收者,所以i为原值0 在
C
++
中,则是先执行i=i 此时i为0 再执行i
++
此时i为1,故输出1
++
(自增
i=i
++
和j=i
++
的区别(i=i
++
在
java
中和
c
++
中值不相同)
i=i
++
和j=i
++
的区别(i=i
++
在
java
中和
c
++
中值不相同) 看下面代码 public class Test2 { public static void main(String[] args) { int i=1; i=i
++
; System.out.println(i); } } 输出结果: 1 那么这是为什么呢?而且
java
中和
C
++
中应该是不一样的,
c
++
是1-10 下面我们来分析一下 通过class文件反编
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章