第二章 开始学习C++

这章比较基础,没有太多没学过的,我把书上的内容一页页过了一遍,将有些小细节记录下来。
1.main函数会被启动代码调用,启动代码是程序和操作系统之间的桥梁。

2.int main()才是C++标准格式,尽管void main()也可以被使用,但是它并不适用于所有系统。

3.#include<……>是预处理器操作,在编译开始前会用头文件的内容替换掉#include<……>。
所有的预处理命令都以#开头,预处理命令主要包括宏定义、文件包含、条件编译。include属于文件包含。

4.关于新旧风格的头文件
头文件C++旧式风格(如iostream.h)与新式风格(如iostream)的区别在于前者调用库函数,使用的是全局命名空间;后者未定义全局命名空间,需要使用namespace std。

4.关于using namespace std。
using 是一个编译指令,在此条语句中,using 使得名称空间std中的所有名称都可以用。

名称空间的详细解读可以看这个博客:命名空间(namespace)详解
如果不使用using指令(仅以std为例),也可以直接在cout或者cin前面加上std::,如std::cout。(这里要注意名称空间中可以包含对象、函数、变量等等等等,cin/cout是i/ostream类的对象,而不是函数,不是函数,不是函数!这是大多数人学习可能会进入的误区)
e.g.

#include <iostream>
int main()
{std::cout << "Hello world!\n";return 0;
}

或者更好的办法是只声明想要使用的变量(不过应该也没人会创个变量叫cout什么的吧?!):

#include <iostream>
using std::cout;
int main()
{std::cout << "Hello world!\n";//如果在这个程序中使用cin就会出错return 0;
}

自己码的关于名称空间的小练习:

#include <iostream>
using namespace std;
namespace EXAMPLE_1
{int k = 1;
}
namespace EXAMPLE_2
{namespace EXAMPLE_3//名称空间可以嵌套{int func(int x, int y) {return x + y;}}
}
int main()
{using namespace EXAMPLE_1;using EXAMPLE_2::EXAMPLE_3::func;//这样声明的时候要注意不能以名称空间名结尾cout << "EXAMPLE_1::k="<<k<<endl;cout << "EXAMPLE_2::EXAMPLE_3::func=1+1=" << func(1,1)<< endl;//函数、类、结构体等等同理return 0;
}

5.函数似乎没有啥好讲的,除了形参与实参值以及返回值值得注意一下。
这里说两点,一是在设计函数时,个人感觉最好在最前面声明函数原型,尽管不是必要的,但是可以避免不必要的错误,以及使程序的框架更加清楚;二是main函数中结尾的return 0,这个0值是返回给操作系统的,通常返回值为0意味着程序运行成功。

第二章的复习题和练习都比较简单,跳过。

C++学习之路——Chapter 2:开始学习C++相关推荐

  1. 交互设计师学习之路:第一天 色彩学习

    第一次写博客.(该博文是总结摘录学习过程中的一些资料,以及自己的一些感悟) 阴差阳错的开始了自己的未来职业之路.身为计算机的学生,我也纠结了很久,实习被安排到做UI/UE,感觉从此与代码无缘.虽然平时 ...

  2. 大数据学习之路(七)——学习小结

    个人目前学习的总结,如有问题,发现的时候会修正,用于个人回顾,有错误的地方欢迎留言指出 通过前几篇的学习 hadoop单节点伪分布式 hadoop完全分布式 hadoop完全分布式高可用(HA) zo ...

  3. 【尚观】Android游戏与应用开发最佳学习之路_转载来学习Android

    Android游戏与应用开发最佳学习路线图 为了帮助大家更好的学习Android,并快速入门特此我们为大家制定了以下学习路线图,希望能够帮助大家. 一.      路线图概括: 开博不到一周,不予上传 ...

  4. ZYNQ学习之路9.USB总线学习(二)

    Linux中USB驱动程序依然遵循标准的设备驱动模型--总线.设备.驱动.和I2C总线设备驱动一样,所有的USB驱动程序都必须创建的主要结构体是struct usb_driver,它们向USB核心代码 ...

  5. webpack学习之路

    webpack学习之路 当自己在学习webpack的时候,在网上发现中文的很详细的教程很少,于是便想将自己学习webpack的笔记记录整理下来,便有了这篇文章,希望对大家有所帮助,如果有错误,欢迎大家 ...

  6. 学习之路/免费的图库推荐

    2019独角兽企业重金招聘Python工程师标准>>> 免费的图库推荐 欢迎阅读我所有的学习之路系列文章: 学习之路系类文章目录 本文会根据我在实际使用中,用到的一些免费图库,推荐给 ...

  7. OpenGL学习之路17---- 镜面反射光

    代码放在github上 根据教程:ogldev一步步开始,记录学习历程 之前完成环境光和漫射光的学习.环境光的计算只由光强来决定,场景中所有位置是同一亮度:漫射光的计算由光强和光的方向一同决定,相关博 ...

  8. 《Qt 学习之路 2》

    Home / Qt 学习之路 2 / <Qt 学习之路 2>目录 <Qt 学习之路 2>目录 序 Qt 前言 Hello, world! 信号槽 自定义信号槽 Qt 模块简介 ...

  9. 零基础AI人工智能的学习之路-从0到1-浅谈

    文章目录 0.背景 0.1. 知己 0.2. 知彼 1.if转行,这些文章可以参考学习 2.学习之路 2.1 个人学习之路 2.2 推荐的学习之路 3.推荐学习利器 3.1 Kagge 3.2 菜鸟教 ...

最新文章

  1. java查看文件夹下文件夹大小,java 获取文件夹大小,文件大小,文件个数
  2. 通过 Mysql 官网配置更新本地的mysql源
  3. python系统-python做系统
  4. python3.7扩展库是什么_Python3.4以后的版本中,____________库用于安装管理Python扩展包,________________库用于发布Python包。_学小易找答案...
  5. 任何抛开业务谈大数据量的sql优化都是瞎扯
  6. Django输入日期返回第几天time
  7. 3rd 逻辑运算符的基本用法
  8. 零基础自学java_零基础学Java——小白的Java之路(4)
  9. Reactor模型和Proactor模型:同步IO与异步IO
  10. 用delphi模仿.net的string.split
  11. win下的一款自动远程备份工具
  12. 【Gym-102606 H】Heat Pipes【奇环染色、bfs 生成树】
  13. 数学建模论文写作模板
  14. 火山PC锐浪报表使用教程1(Grid++Report)
  15. debian7系统设置固定IP
  16. 经典网络结构分析:卷积神经网络的现代雏形 ---LeNet
  17. 无限复活服务器,绝地求生刺激战场无限复活模式怎么玩 无限复活玩法攻略分享...
  18. RISC-V架构能否引领物联网时代?
  19. Android上的滤镜效果
  20. 如何查看UE的ENDC组合能力

热门文章

  1. java finally关闭文件流_Java如何正确的使用try catch finally关闭文件流的总结
  2. ROS(ERROR):Rosdep cannot find all required resources to answer your query
  3. POJ 2431 Expedition(贪心+优先队列)
  4. 全新线控制动系统产品发布,清智科技正式完成业务拓展
  5. 新H5中用canvas画一个数字钟表
  6. 微信小程序---实现手机号发送验证码登录
  7. ESP8266初次如何实现无线通信(基于电脑与ESP8266)
  8. 一文读懂 Traefik Hub
  9. 奥斯卡 | hulu拿到小金人!迪士尼共斩获六项
  10. HelloRobot【六足】机械蜘蛛