发现一些容易忘记的细节

1:i++与++i

我们先看下结果 然后再看下汇编

int a = 0; int b = 0;
printf("刚开始 a = %d; b = %d; \n", a, b);
a = b++;
printf("a = b++ a = %d; b = %d; \n", a, b);
a = ++b;
printf("a = ++b a = %d; b = %d; \n", a, b);

接下来上汇编的图

从第三和第四行汇编可以看到 a = b++ 是先把b的值放入寄存器eax里 此时b = eax = 0 在把eax赋值给a 此时a = 0

第五行 把b的值放入寄存器ecx中 ecx = 0

第六行 把ecx和1累加 ecx = 0+1 = 1

第七行 把ecx赋值给b   ecx = b =1

总结如下:

单纯的i++ 等价于 ++i;

表达式中 是不一样的 a = i++  a = ++i   以及 i++和++i 作为函数参数 例如 fun(int a){...} main(){fun(i++);}

时间: 2024-08-07 04:31:39

发现一些容易忘记的细节的相关文章

重装电脑后发现回收站文件忘记还原怎么办

最近电脑老是莫名其妙地出现弹窗,于是我就上网去查询了一下原因,看到有人似乎也是遇到了我这样的问题,然后好像是什么系统文件丢失了,看了一下简介,感觉蛮晕的,咱也不是专业的技术人才,对于这些东西真心是没有什么研究的,于是跳过了之前的介绍,就看了一下后面的解决办法,对方表示,最好的解决办法就是重装系统了! 别看是重装系统,虽然我们这些人不咋懂,但是也知道,重装系统其实并不难,只需要在网上去下载一个系统,就可以直接安装了,现在这些东西都弄得十分的简单化了,并不存在什么难处,于是很快我的系统就重装好了,果

快速排序中的partition函数的枢纽元选择,代码细节,以及其标准实现

很多笔试面试都喜欢考察快排,叫你手写一个也不是啥事.我很早之前就学了这个,对快速排序的过程是很清楚的.但是最近自己尝试手写,发现之前对算法的细节把握不够精准,很多地方甚至只是大脑中的一个映像,而没有理解其真正的本质意图.于是今天结合了<数据结构>(严蔚敏),和<算法导论>进行一番探究. 首先先给出快速排序的严蔚敏版的实现(实际上这部分的partition也是算法导论里面思考题的实现方式,细节可能不一样): 1 public class QuickSort implements So

性格决定命运&#160;&#160;细节决定成败

人的性格,好像是个人小事.其实,它是决定人生命运至关重要的大事.“性格决定命运”,这绝对是发人深省的至理名言. 人以群分,物以类聚.在这相互依存,环环相扣的现代社会中,人与人之间惟有精诚合作才可以安身立命,性格的决定作用便日益彰显.积极的性格——诸如认真.勤奋.乐观.沉着.刚强.果敢.大度.慷慨.坦诚.谦逊和热情——无疑是上佳的粘合剂和酵母,能使人更具爱心和进取心,更具魅力和竞争力:消极的性格——诸如懒惰.阴郁.自私.狂妄.狡诈.懦弱.狐疑.狭隘.悭吝和冷酷——则是可怕的隔离带和封闭圈,会使人与

ThreadLocal使用小细节(下)

当自己总结完ThreadLocal使用小细节(上)的时候,再过几天会看了一下,发现自己学习得有点"泛"(就是半桶水),不够深入,说服不了自己,于是决定继续往下面探讨.探讨过程中发现(上)总结得确实有点"不正确". ThreadLocal通过中文解释就是线程本地变量,是线程的一个局部变量.根据哲学家黑格尔"的存在即合理"的说法,ThreadLocal的出现肯定是有它的意义,它的出现也是因为多线程的一个产物.ThreadLocal既然跟线程有关系,那

[Windows Server 2008] 阿里云.云主机忘记密码解决方法

★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:解决阿里云云主机忘记远程密码 在技术服务过程中,我们发现不少用户忘记了阿里云云主机(ECS)的远程管理密码. 用阿里云管理控制台的 “重置密码” 功能,可以解决此问题. 1.依次进入:阿里云 -> 管理控制台 -> 左侧“云服务器ECS”,进入“实例列表”: 2.点击右侧“管理”,进入“实例详情”,点击“重

使用Spring的注解方式实现AOP的细节

前面我们已经入门使用Spring的注解方式实现AOP了,现在我们再来学习使用Spring的注解方式实现AOP的一些细节.本文是建立在使用Spring的注解方式实现AOP入门的案例的基础之上的. 本文是来讲解使用Spring的注解方式实现AOP的一些细节,其实说白了就是学习如何使用各种通知而已,例如前置通知.后置通知.异常通知.最终通知.环绕通知等,之前我们已经学习了前置通知,现在就来学习剩余的通知. 我们先来看后置通知,此时须将MyInterceptor类的代码修改为: /** * 切面 * @

laravel5.5 自带的忘记密码邮箱找回功能小记

前沿: 看了半天登录注册,然后是这个忘记密码,有点头晕,只能说确实很菜. 1. 执行php artisan route:list 查看当前所有路由,可以发现点击忘记密码时候执行的是ForgotPasswordController控制器中的showLinkRequestForm方法,打开了对应视图. 2. 输入邮箱后点击发送邮件,执行的是ForgotPasswordController控制器中的sendResetLinkEmail方法, 控制器很干净,那方法应该是在引用的trait中了,打开Sen

Oracle忘记密码的处理办法

可能有的人在很长一段时间不用Oracle数据库,然后在反过来用的时候就会发现自己依然忘记了密码... 这里提供一个忘记密码后的解决办法 首先呢,你打开数据库用 sys或者是sysdba超级管理员用户名登录,这个时候一定要注意  连接方式必须为 sysdba 或者是sysoper两者之一才可以, 这时候哪怕你的密码胡乱写也可以登录成功,原因就不具体阐述了 登录成功后编写语句 --这里以scott系统用户为例 --因为默认是锁定的,所以得先解锁 alter user scott account un

FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译

前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家分享一下,顺便做了一下记录以备以后使用时参考. 本文(记录)与目前网上很多关于ffmpeg的文章相比有两个特点: 一.重点不在于ffmpeg的解码部分(这个本来是ffmpeg最大的亮点),为什么?前面说了,这是我以前工作的一个整理.况且关于ffmpeg的解码相关文章非常多了,如果大家感兴趣的话,可以