社区
C#
帖子详情
请教c#的加法运算顺序
cassad
2010-08-18 10:36:03
int a = 4;
a += (a++);
为什么最后得到a的结果是8,而不是像c语言中得到的结果为9。
请大家告诉原因,谢谢。
...全文
132
8
打赏
收藏
请教c#的加法运算顺序
int a = 4; a += (a++); 为什么最后得到a的结果是8,而不是像c语言中得到的结果为9。 请大家告诉原因,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
十八道胡同
2010-08-18
打赏
举报
回复
这个是操作符优先级问题
wuyq11
2010-08-18
打赏
举报
回复
++x x加1后使用x(前置加)
x++ 使用x值后加1(后缀加)
Peter200694013
2010-08-18
打赏
举报
回复
int a = 4;
a += (a++);
--〉 a = a + (a++)
a = 4 + (a++)
a++返回4,然后自增加1 即此时a = 5
然后 a = 4 + 4; 又赋值8
故结果 a为8
bdmh
2010-08-18
打赏
举报
回复
修正一下
0000004f mov dword ptr [ebp-44h],eax 这里被覆盖了
bdmh
2010-08-18
打赏
举报
回复
是的,看看汇编就明白了
a += (a++);
0000003a mov eax,dword ptr [ebp-44h]
0000003d mov dword ptr [ebp-48h],eax
00000040 mov eax,dword ptr [ebp-44h]
00000043 mov dword ptr [ebp-4Ch],eax
00000046 inc dword ptr [ebp-44h] //此处进行了++操作,但是后面并没有用到[ebp-44h]中的数,而是被覆盖掉了
00000049 mov eax,dword ptr [ebp-48h]
0000004c add eax,dword ptr [ebp-4Ch] //这里就被覆盖掉了
0000004f mov dword ptr [ebp-44h],eax
jinguanghai
2010-08-18
打赏
举报
回复
不好意思!刚才着急打错了
int a=4;
"a+=a"和a=a+a是一样的; a++是在本次运行完结后再+1;而不是在本次运行时+1;如果你想最后得到的是9的话,应该这样写:a+=(++a); ++a和a++的不同之处就在于前者是在本次运行中先+1,后者是在本次运行完后再+1。
我回答的很完整,希望+分
jinguanghai
2010-08-18
打赏
举报
回复
int a=4;
"a+=a"和a=a+a是一样的; a++是在本次运行完结后再+1;而不是在本次运行时+1;如果你想最后得到的是9的话,应该这样写:a+=a+(++a); ++a和a++的不同之处就在于前者是在本次运行中先+1,后者是在本次运行完后再+1。
我回答的很完整,希望+分
BusyDonkey
2010-08-18
打赏
举报
回复
a += (a++);
a=a+(a++)
因为加法运算的优先级大于++,而在等号运算符起作用前优先执行了++,最后a又从5赋成了8
C#
零基础入门课程
零基础
C#
入门课程旨在帮助编程小白从零开始掌握
C#
语言的基础知识和编程技能。课程主要包括以下几个方面:
C#
语言简介与开发环境搭建:介绍
C#
语言的特点、应用场景和优势,并教授如何搭建
C#
开发环境,选择和使用常用...
C#
编程入门基础,开启你的编程之旅
C#
使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,而绝不损失C/C++原有的强大的功能。因为这种继承关系,
C#
与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向
C#
。 ............
C#
从入门到进阶
C#
从入门到进阶
C/C++笔试题
static是加了访问控制的全局变量,不被继承。 3。在C++的一个类中声明一个静态成员函数有没有用? (同上?) 4。如何实现一个非阻塞的socket? 5。setsockopt, ioctl都可以对socket的属性...
lua虚拟机字节码修改_从零开始实现 Lua 虚拟机 ( UniLua 开发过程 )
大约是2013年初,部分由于工作需要,部分由于个人的强烈兴趣,在云风大大的指导下,我使用
C#
编写了一套较为完整的 Lua 实现: UniLua ( GitHub - xebecnan/UniLua: A pure
c#
implementation of Lua 5.2 focus on ...
C#
110,529
社区成员
642,572
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章