C++学习笔记---开题篇

写在前面:

      我06年升入烟台大学,大一下学期开始接触C++,掐指算来接触C++也有三年有余。但是真正学习C++的时间几乎为零。我们当时学的是谭浩强的《c++程序设计》清华大学出版社。学完这本书后,开始长达一年的空白阶段。大三开始重温C++,期间读了《More Effective C++》《C++ STL》《More Effective STL》等书籍。

      大二下学期开始学习MFC,一直到现在只学的皮毛。后来又接触了Qt设计。欲感C++的博大精深。也感到自己C++基础薄弱。故,重温C++。分享自己学习的心的。也希望大家能够指出其中的不足。

 

一个问题:

          question:i++,++i,i+=1的区别?

 

 先来看一下一位资深网友的回答:

 

“计算机内部实现过程有别,详细如下:
i=i+1的过程相当:
  temp=i+1; i=temp;


i++的过程相当:

  temp=i; i=temp+1; return temp;


++i的过程最简单:

  i增1然后return i 的值,一步完成,没有给任何temp变量赋值”

 

现在为了测试这句话的正确性,我编辑一个最简单的代码来查看汇编测试:


int i=0;

i++;

++i;

i+=1;

 

汇编效果:

可以看出并没有什么区别。但是计算机组成原理中曾经提到:++i和i++单句用的时候,编译器就按照i += 1;处理了.

 

于是更改为复合语句来实现。代码如下:

结果汇编效果如下:

 

我们这样可以看到他们之间的区别。上面那位网友所言甚是。

 

写在最后:

以后的笔记我以《c++ primer中文版》为基石,加入自己的看法。希望大家能指出其中的不足,指正其中的错误。我们在追求技术巅峰的路上,共勉之。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值