2.1 进入C++

第一个示例程序:

//myfirst.cpp
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "Come up and C++ me some time.";
cout << endl;
cout << "You won't regret it!" << endl;
return 0;
}

2.11 main()函数

  • 在c++11强制标准中,mian应定义为int类型,在某些也需要写成void类型,然而因为void不是强制标准,所以部分环境下是无法编译的,考虑到软件的泛用性,最好写成int类型。在C语言中,mian的类型声明可以省略,默认类型为int类型。C++中,()(void)等效,表示不接受任何参数,C中不一样(空着表示沉默?)。另外,ISO的C++标准允许没有return x语句,在函数结尾默认加入return 0
  • C++独立程序的入口规定必须是main(),并且大小写敏感。 在某些DLL模块或者特殊环境中,可以没有mian()函数。当然,他也会调用其他名字的主函数。

2.12 注释

两种注释方式:

  1. // xxxxxxx
  2. /* xxxxxxx*/

2.13 预处理文件

C++内置一个预处理器,在程序进行主编译之前对源文件进行处理。

C++程序编译过程:C++源程序->编译预处理->编译->汇编程序->链接程序->可执行文件

  1. 编译预处理: 读取源代码,处理伪指令和特殊符号。伪指令包括宏定义、条件编译、头文件,特殊符号包括LINEFILE等。
  2. 编译: 将预编译生成的文件翻译成中间代码/汇编代码,生成汇编文件
  3. 汇编: 将中间代码/汇编代码翻译成机器码,生成目标文件
  4. 链接: 将汇编产生的目标文件链接起来,还包括引用的库、调用的库文件函数等。链接完成之后即可生成可执行文件。

2.14 头文件

C++兼容老式的C头文件,如math.h,在C头文件中使用C++特性,最好还是找C++的头文件,如math.h -> cmath(ISO标准委员会要求不使用任何扩展名)

2.15 命名空间

  • 命名空间使用using编译指令,这是编译指令的一种。

  • 命名空间可以理解为对一块空间的命名。如有两个封装好的库,分别都有一个check()的方法,使用命名空间来区分不同的库的不同的check()方法。A::check()B::check()

  • using namespace std让std对其空间内的所有名称可用,还可以麻烦点,在代码内使用std::cout。在using中也可以指定命名空间的名称,如using std::cout。这样可以避免一些潜在的风险。

2.16 Cout输出语句

cout<< "xxx" << endl中,cout是一个预定义好的对象,负责输出。<<是插入运算符,可以重载。endl为换行控制符,可以用\n代替。

2.17 代码格式化

尽管每个人的代码风格不尽相同,但是代码风格是一个很重要的事情,直接影响代码可读性和重构的难易度。尽量使用通用的代码风格,注意控制缩进、括号位置等。

Chapter02 第一节 开始学习C++的更多相关文章

  1. Linux第一节课学习笔记

    我的目标是考过RHCE 开源软件有使用.复制.传播.收费.修改及创建衍生品自由,其中后二者只有开源软件才有,前四者开闭源共有.

  2. 第一节,学习cocos2d-x的前期准备

    1,我用的mac系统,在mac系统上装上cocos2d-x的模板 2,用doxygen工具装上API,这个非常重要,没有API的开发不叫开发,因此我们要习惯看API 3,知道怎么查看cocos2d-x ...

  3. MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件

    MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件 前言 万事开头难,有了<MapSer ...

  4. OpenNebula学习第一节OpenNebula Front-end Installation

    一.说说情怀 随着公司硬件开发资源的不足,构建一个云平台似乎重要了起来.当然,也不是这个平台搭建的主力,出于工作的需求和个人兴趣爱好,接下来就来学习一下OpenNebula相关的东西,这是第一节课,先 ...

  5. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  6. 1001-MySQL学习-第一节自习课

    MySQL学习(第一节自习课) 一. 软件下载.安装 下载地址:https://dev.mysql.com/downloads/installer/ 位置:mysql->installer-&g ...

  7. VUE2.0实现购物车和地址选配功能学习第一节(来源--慕课网河畔一角)

    第一节  vue知识 vue-resource:和后台交互的一个插件,实现get.post和jsonp等功能.(替代jQuery) vue特点: 1.易用:通过创建vue实例,{{}}绑定数据十分方便 ...

  8. seajs第一节,seajs基本使用

    什么是seajs,它是干什么使用的,可以去网上搜索一下, 官网:http://seajs.org/docs/ 基本使用seajs <!DOCTYPE html> <html> ...

  9. 2014年度辛星html教程夏季版第一节

    从今天起开始在博客园开启自己的html教程啦,先从第一节开始把,首先推荐一个网站,就是http:/www.w3cschool.cc,这是一个公开的教学网站,但是它有一个问题,那就是虽然很全面,但是不是 ...

随机推荐

  1. u-boot bl _main分析

    ldr    r0, =(CONFIG_SYS_INIT_SP_ADDR): #define CONFIG_SYS_INIT_SP_ADDR     (CONFIG_SYS_INIT_RAM_ADDR ...

  2. Spring框架几种创建bean的方式

    Spring框架下,Bean的创建和装配非常的灵活,提供了三种主要的方式,并且相互见可以互相看见,也就是你可以随意地采用你喜欢且合适的方式创建Bean,而不用担心他们之间的兼容问题. 一.使用XML显 ...

  3. SSH开发环境整合

    第一步:Spring开发环境搭建 1.1: 添加配置文件和相应spring-3.2-core.Jar 核心包 配置文件 <?xml version="1.0" encodin ...

  4. Excel筛选操作

    Excel的筛选操作如下: 选中指定列: 点击"开始"中的"排序和筛选" 点击如下小三角即可按条件进行筛选

  5. Oracal数据库安装配置教程

    官网注册账号登录 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-windows- ...

  6. Python如何快速初始化一个二维数组

    正确的方法 cols= 3 rows = 2 memo = [[1] * m for i in range(n) ] 下面这种做法是错误的 memo = [[1] * m ] * n 这会导致 mem ...

  7. spring mvc @Valid 数据验证

    //对书的单价校验不能是空,价格在20-100之间   @DecimalMax(value = "100", message = "价格不超过100元")   ...

  8. Linux 系统磁盘空间占满,df 和 du 结果不一致

    服务器运行一段时间后df查看磁盘剩余空间不足,通过du统计发现被几个文件占用,遂删除之.过了一段时间磁盘空间再次不足,通过du统计却找不到那么多大文件.搜索后才得知原因:文件删除后空间没有释放,du统 ...

  9. @JsonView注解指定返回的model类中显示的字段

    1.User类 package com.imooc.model; import com.fasterxml.jackson.annotation.JsonView; /** * @author oy ...

  10. windows10 gcc编译C程序(分步编译)

    下面演示gcc对C源程序的分步编译过程: 1. 编译(Compile) gcc hello.cpp -c # 生成hello.o,目标文件名字和源文件名字一样,VC编译会生成.ojb文件,gcc编译器 ...