⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uy.txt

📁 偶的是化工撒谎公害了海水倒灌上帝和风格卡上刚撒和鼓励哈斯格拉是个厉害爱思考和顾客撒谎概括了撒开两个
💻 TXT
字号:
a+=b & a=a+b2007-01-16 15:41闲话不说,直接上代码:
  1 #include <iostream>
  2
  3 int main()
  4 {
  5     int a=10;
  6     int b=2;
  7     a^=b^=a^=b;
  8     std::cout<<a<<'\t'<<b<<'\n';
  9     a=a+b-(b=a);//a+=b-=b=a;
 10     std::cout<<a<<'\t'<<b<<'\n';
 11     return 1;
 12 }
-----------------------------
lichao@lichao:~/Projects/temp$ g++ b.cpp
lichao@lichao:~/Projects/temp$ ./a.out
2       10
10      2
------------------------------
如果line:9变为a+=b-=b=a;
答案is:
lichao@lichao:~/Projects/temp$ g++ b.cpp
lichao@lichao:~/Projects/temp$ ./a.out
2       10
2       0
------------------------------
二者的不同:
a=a+b-(b=a)
    0x08048522 <main+66>:   mov    0xfffffffc(%ebp),%eax                      b->eax
    0x08048525 <main+69>:   mov    0xfffffff8(%ebp),%edx                     a->edx
    0x08048528 <main+72>:   add    %eax,%edx                                      a+b->edx
    0x0804852a <main+74>:   mov    0xfffffff8(%ebp),%eax                      a->eax
    0x0804852d <main+77>:   mov    %eax,0xfffffffc(%ebp)                      eax->b
    0x08048530 <main+80>:   mov    %edx,%eax                                      edx->eax
    0x08048532 <main+82>:   sub    0xfffffffc(%ebp),%eax                       eax-=a
    0x08048535 <main+85>:   mov    %eax,0xfffffff8(%ebp)                      eax->a
a+=b-=b=a;
    0x08048538 <main+88>:   mov    0xfffffff8(%ebp),%eax                      a->eax
    0x0804853b <main+91>:   mov    %eax,0xfffffffc(%ebp)                      eax->b
    0x0804853e <main+94>:   movl   $0x0,0xfffffffc(%ebp)                       0->b
    0x08048545 <main+101>:  mov    0xfffffffc(%ebp),%edx                     .................
    0x08048548 <main+104>:  lea    0xfffffff8(%ebp),%eax
    0x0804854b <main+107>:  add    %edx,(%eax)
OVER。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -