社区
C语言
帖子详情
++i+(++i)
wibnmo
2010-11-23 04:45:02
int i = 3;
int j = sizeof(++i+(++i));
i 和 j的值为什么打印出来是3 4?
希望说详细些,谢谢啦.
...全文
295
11
打赏
收藏
++i+(++i)
int i = 3; int j = sizeof(++i+(++i)); i 和 j的值为什么打印出来是3 4? 希望说详细些,谢谢啦.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
清香白莲
2010-11-23
打赏
举报
回复
明白了吗????
清香白莲
2010-11-23
打赏
举报
回复
sizeof中的表达式仅仅表示一个某个类型的数而已,不会影响i的值,而sizeof就会求出类型的字节数。
清香白莲
2010-11-23
打赏
举报
回复
sizeof是求字节数的,而后面的数是一个int型的,所以是4;
i值为3,因为后面的值是在sizeof中的,不会改变i的值,如果没有sizeof,则i的值改变。
liutengfeigo
2010-11-23
打赏
举报
回复
[Quote=引用 6 楼 wibnmo 的回复:]
关键是i搞不懂为什么是3.
[/Quote]
都说了你那个括号内不进行求值啊,也就是那话是空话。等于没写
wibnmo
2010-11-23
打赏
举报
回复
关键是i搞不懂为什么是3.
FreddyHu
2010-11-23
打赏
举报
回复
你Sizeof理解错了,你在计算一个int类行
相当于:int j = sizeof(int);
所以 就是3,4
無_1024
2010-11-23
打赏
举报
回复
而sizeof只会对i的类型进行判断不会进行计算
無_1024
2010-11-23
打赏
举报
回复
j永远是4 sizeof球的是类型的长度 也就是i的类型
liutengfeigo
2010-11-23
打赏
举报
回复
好像我说错了,不是编译器不会进行求值。
反正是不会进行求值。
我记得是飞雪告诉我们的。
liutengfeigo
2010-11-23
打赏
举报
回复
sizeof(++i+(++i));//这个括号内编译器不会不进行求值的
关于 i
++
+i 到底是 i+(
++
i)还是 (i
++
)+i
关于 i
++
+i是i+(
++
i)还是 (i
++
)+i: 摘要: 今天去面试遇到一些题,关于各种i
++
或者是
++
i的,一直对这个都没有理解透彻,今天专门发了一些时间来把它搞明白,或许是自以为的搞明白,然后就记录一下,不然以后都忘了。 先说一下我测试的结果: i
++
+i是 (i
++
)+i 不是i+(
++
i) 测试代码如下 怎样反编译class字节码文件? 在字节码文件class的目录cmd在控制...
c语言 字符相加_C语言中自加自减的编译原理
自增自减规则i
++
与
++
i 的主要区别有两个:1、 i
++
返回原来的值,
++
i 返回加1后的值。 2、 i
++
不能作为左值,而
++
i 可以。毫无疑问大家都知道第一点(不清楚的看下下面的实现代码就了然了),我们重点说下第二点。 首先解释下什么是左值(以下两段引用自中文维基百科『右值引用』词条)。左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值...
C语言 | i
++
与
++
i
i
++
与
++
i
i
++
和
++
i的原理分析
i
++
和
++
i的原理分析 今天我终于了解了这两个式子在字节码指令中的具体操作原理,以前记忆这两个式子都是固定思维:i
++
是先进行运算再进行自增,
++
i是先进行自增再进行运算。但是今天发现了一个问题。 代码如下(示例): public class AutoAddTest { public static void main(String[] args) { int i = 0; i = i
++
; System.out.println(i);
【Java基础知识】i
++
和
++
i的区别和理解
java中“ for (int i = 2;i
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章