技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 程序开发 > c/c++ > 正文

buf[tnum++] = 0x0d; 是先取tnum的值,再加1吗?

来源: 技术CTO 阅读:

如下代码,是不是先取tnum的值,再加1?
buf[tnum++] = 0x0d;

是不是相当于?
buf[tnum] = 0x0d;
tnum ++;

是这样的,如果++在前面,那么就把你写的那个顺序反一下。
更进一步的,我想问:

buf[tnum += 2] = 0x0d;

是不是相当于:
buf[tnum] = 0x0d;
tnum += 2;
引用 2 楼 mbctb 的回复:
更进一步的,我想问:

buf[tnum += 2] = 0x0d;

是不是相当于:
buf[tnum] = 0x0d;
tnum += 2;

这个倒不是了,这个是这样的
tnum += 2;
buf[tnum] = 0x0d;
所以++和--是比较奇葩的,其实具体你可以写个小程序看反汇编就知道了。
引用 3 楼 william7_138 的回复:
Quote: 引用 2 楼 mbctb 的回复:

更进一步的,我想问:

buf[tnum += 2] = 0x0d;

是不是相当于:
buf[tnum] = 0x0d;
tnum += 2;

这个倒不是了,这个是这样的
tnum += 2;
buf[tnum] = 0x0d;
所以++和--是比较奇葩的,其实具体你可以写个小程序看反汇编就知道了。

好的,非常感谢!
引用 4 楼 mbctb 的回复:
Quote: 引用 3 楼 william7_138 的回复:

Quote: 引用 2 楼 mbctb 的回复:

更进一步的,我想问:

buf[tnum += 2] = 0x0d;

是不是相当于:
buf[tnum] = 0x0d;
tnum += 2;

这个倒不是了,这个是这样的
tnum += 2;
buf[tnum] = 0x0d;
所以++和--是比较奇葩的,其实具体你可以写个小程序看反汇编就知道了。

好的,非常感谢!

客气了,同学,共同探讨,共同研究,共同进步!

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^