社区
Java EE
帖子详情
关于i+++++i问题
Xeon-Shao
2012-01-10 12:51:33
如果int i=4;
int y=i+++++i;
则y等于多少??如何判断??
...全文
276
17
打赏
收藏
关于i+++++i问题
如果int i=4; int y=i+++++i; 则y等于多少??如何判断??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
艳沐石
2012-01-11
打赏
举报
回复
y = i++ + ++i
相当于
// 解析i++
t1 = i;
i = i +1;
// 解析++i
i = i + 1;
t2 = i;
// 等式结果
y = t1 + t2;
「已注销」
2012-01-11
打赏
举报
回复
哦哦,实在是太难了,不懂啊,楼主好厉害啊
I_jiao_Mt
2012-01-11
打赏
举报
回复
难道还没结贴?
qq827010202
2012-01-10
打赏
举报
回复
结果是10
i++ 是 4
++i 是 6(i++在后一次用到i时,是5,然后++i是6)
y=4+6
南老頭
2012-01-10
打赏
举报
回复
不存在,这么写肯定报错了,编译都通不过
qq827010202
2012-01-10
打赏
举报
回复
我觉得和运算符的原理很相似。为什么纠结于这样一个问题呢?
Xeon-Shao
2012-01-10
打赏
举报
回复
[Quote=引用 8 楼 wuyigong111 的回复:]
引用 7 楼 sdujava2011 的回复:
引用 3 楼 ella110727 的回复:
应该是这样子写的y = i++ + ++i;
我想问的就是为什么我写那个编译不通过呢??
如何判断是否能编译通过呢????
比如
int i=4;
int y=i+++i+++i++;
就能通过
基于lz的纠结,我去eclipse上面测试了一下,发现编译的时候 i++ 后……
[/Quote]
请这位仁兄详细谈一下可否?
zysnba
2012-01-10
打赏
举报
回复
如果int i=4;
int y=i+++++i;
计算步骤:
int y = (i++) + (++i);
int y = (i++) + 5;
int y = 5 + 5=10;
javabugsmaker
2012-01-10
打赏
举报
回复
不管是先i++,还是先++i,结果都是10。。
i++ + ++i中间的+必须有空格。。
zysnba
2012-01-10
打赏
举报
回复
如果int i=4;
int y=i+++++i;
计算步骤:
int y = (i++) + (++i);
int y = 4 + (++i); //这个时候i变成了5
int y = 4 + (++5)//++5 等于6
int y = 4+ 6=10
Zhou
2012-01-10
打赏
举报
回复
int y = (i++) + (++i);
wuyigong111
2012-01-10
打赏
举报
回复
[Quote=引用 7 楼 sdujava2011 的回复:]
引用 3 楼 ella110727 的回复:
应该是这样子写的y = i++ + ++i;
我想问的就是为什么我写那个编译不通过呢??
如何判断是否能编译通过呢????
比如
int i=4;
int y=i+++i+++i++;
就能通过
[/Quote]
基于lz的纠结,我去eclipse上面测试了一下,发现编译的时候 i++ 后面可以有 + 号,但是 ++i 前面不能有加号。
Xeon-Shao
2012-01-10
打赏
举报
回复
[Quote=引用 3 楼 ella110727 的回复:]
应该是这样子写的y = i++ + ++i;
[/Quote]
我想问的就是为什么我写那个编译不通过呢??
如何判断是否能编译通过呢????
比如
int i=4;
int y=i+++i+++i++;
就能通过
MiceRice
2012-01-10
打赏
举报
回复
你这句话,应该没法编译吧?
要加上空格:int y=i++ + ++i;
加上空格后,其实就很容易理解了吧?
因为 ++ 运算符的特殊性,i++会在整个表达式运算完成后才执行,而++i会在表达式计算之前就执行,所以上面这句话相当于被拆解成:
++i;
int y = i+i;
i++;
所以y=5,i=6
飞跃颠峰
2012-01-10
打赏
举报
回复
i++的值为4,i变成5
++i的值为6,i变成6
所以 y=4+6=10
Steve
2012-01-10
打赏
举报
回复
没空格不行吧:
int y = i++ + ++i;
i++ =4 随后i=5
++i = 6
4+6 = 10
qq827010202
2012-01-10
打赏
举报
回复
应该是这样子写的y = i++ + ++i;
MoreWindows白话经典算法之七大排序(高清版)
i++) { for (int j = 1; j < n - i; j++) { if (a[j - 1] > a[j]) { Swap(a[j - 1], a[j]); } } } } ``` 这是最基础的冒泡排序实现,它的时间复杂度为O(n^2),其中n为数组的长度。 2. **带标志位的优化:...
C/C++程序设计员应聘常见面试试题深入剖析
i++) { str1 = 'a'; } strcpy( string, str1 );} 试题 3:void test3(char* str1){ char string[10]; if( strlen( str1 ) ) { strcpy( string, str1 );}} 解答: * 试题 1 字符串 str1 需要 11 个字节才能存放下...
i++和++i 和i+1的区别
大家对i++和++i肯定很熟悉,但是不理解其中深层次原因,就很难理解为什么(i+1)和(i++)会差这么多? 测试代码: 第一种:i+1 结论: 1 2 3 4 5 public class test { public static void main(String[] args) { ...
++i/i++/i+=n/i=i+n的区别
++i/i++/i+=n/i=i+n的区别 +i:“+”只有一边,把值转换为数字转换机制与调用Number()一致 i+=n 和 i=i+n 完全一样,有时是数学运算,当n为字符串或者对象时则为字符串拼接 i++/++i 大部分情况和上面一样,但是如果...
深入理解C/C++中的自增运算符:i++与++i
// 结果可能因编译器而异使用i++时,表达式首先取i的当前值,然后i增加1。使用++i时,i首先增加1,然后表达式取i的新值。++i是左值,可以出现在赋值语句的左侧;i++在自增完成前不是左值。在编写程序时,应避免编写...
Java EE
67,538
社区成员
225,852
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章