無標題文檔

i++ 与 ++i 的性能区别

很多有关程序设计的书中都会说明 ++i 与 i++ 的区别。比如经典的论述就是

i = 5;
k = i++; // 此时 k 还是 5,但是 i 自增以后已经是 6

i = 5;
k = ++i;  // 此时 k 已经是 6,k 是 i 自增以后的值

可能这样的说明还不够直观。总而言之,i++; 是一个右值,而 ++i 是一个左值。

加深印象,上述的两条语句可以用下面两个函数表示。

i++ 为

function () {
    tmp = i;
    i = tmp + 1;
    return tmp;
}

++i 为

function () {
    i = i + 1;
    return i;
}

可以参考 这里获知详情 。总而言之,i++ 语句需要个临时变量,去存储返回自增前的值。

不要忽略这个变量的意义,了解过 C 等「低级」语言的朋友,可能会了解变量的内部机制(重新祭奠我老去的 C 语言知识)。首先,申请(malloc)一段内存空间,然后将值塞(push,压栈)进去,最后不用了释放(free)。

大家可能在循环中会经常的使用 i++ 这样的操作。在不影响逻辑的前提下,我建议使用 ++i ,虽然这点的优化非常的小。

最后,感谢 小马 的指出。

Slackware Linux 启动图

Slackware Linux 经典的部分之一,就是其启动脚本(有空写下注释)。看见 老外的篇文章 ,让我重新审视了其启动的详细过程。

https://friable.rocks/_/2009_11_05/1260656ecf6c.jpg

使用 Slackware 那么久,尝试着给它做点贡献。于是就有了这张启动图,可能还有很多遗漏或者错误的地方,欢迎随时指正。

最后, 大图下载在这里

梅家坞随拍

周末和部门的人一起去梅家坞活动。感谢 A-宣 同志的「炮筒」,拍到那么好的照片。这次,大家终于不用再看本人傻瓜机拍的「抽象图」了。

https://friable.rocks/_/2009_11_05/5301356d5f4f.jpg

https://friable.rocks/_/2009_11_05/1524656d5f4f.jpg

https://friable.rocks/_/2009_11_05/0234656d5f4e.jpg

https://friable.rocks/_/2009_11_05/0370656d5f4a.jpg

https://friable.rocks/_/2009_11_05/1670056d5f49.jpg

https://friable.rocks/_/2009_11_05/0514756d5f4a.jpg

https://friable.rocks/_/2009_11_05/4206856d5f4a.jpg

由于使用了广角镜头,所以景物看起来有点拉伸,但是总体的效果还是不错的。再次感谢 A-宣 同志。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章