逆向基础 C++ Primer Plus 第二章 开始学习C++
C++ Primer Plus 第二章 开始学习C++
知识点梳理
本章从一个简单的C++例子出发,主要介绍了创建C++程序的步骤,以及其所包含的预处理器编译指令、函数头、编译指令、函数体、注释等组成部分,说明了C++的基本代码风格及书写规则,对变量、函数、类的声明以及使用进行了阐述。
重点知识回顾
C++程序从main()函数开始,其中函数由函数头和函数体组成,函数头中包含函数所需的参数类型和函数的返回值类型,函数体是位于花括号中的C++语句。如下main()与普通函数没有区别,只不过其是由启动代码调用,而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。
int main(void){
......
return 0;
}
常见的C++语句主要有下列6种:声明语句、赋值语句、消息语句、函数调用、函数原型、返回语句。C++中的类详细描述了如何表示信息以及可对数据执行的操作,对象是类的实体,其与变量是某种数据类型的实体是一个道理。
C++支持使用绝大多数的C库函数,但需要在程序中包含提供该库函数原型的头文件。 C++程序中总是会出现如下两条语句:
#include <iostream>
using namespace std;
以上第一条编译指令主要用来将iostream文件中的内容添加到程序中,其是一个典型的预处理操作,iostream中包含基本的输入cin和输出cout,添加第一行代码与将iostream文件中的内容复制到主程序中一样效果。
以上第二条指令是引入名称空间的办法,即使用iostream,而不是iostream.h时,使用上述第二条指令来使iostream中的定义对程序可用,其主要是为了避免在大型程序中不同厂商组合起来的代码中出现相同的函数名问题。
最后,C++的代码风格因人因公司而异,网上可以找到各种规范的具体内容,此处从书中摘录几个基本原则总结如下:
- 每条语句占一行;
- 每个函数都有一个开始花括号和一个结束花括号,两个花括号各占一行;
- 函数中的语句都相对于花括号进行缩进;
- 与函数名称相关的圆括号周围没有空白;
- 注释一定要详细。
个人比较推崇的是书写规范是Google C++ Style Guide,在这里找了一个中文版本,分享给大家。
链接: https://pan.baidu.com/s/1A1u-E0EAUWEqVBtB8qMDJw
提取码: vvsa
逆向基础 C++ Primer Plus 第二章 开始学习C++的更多相关文章
- 第二章 开始学习C++
第二章 开始学习C++ 2.1 main函数 简单代码如下: #include <iostream> int main() { //This is my first program u ...
- C++ Primer 笔记 第二章
C++ Primer 第二章 变量和基本类型 2.1基本内置类型 有算数类型和void类型:算数类型储存空间大小依及其而定. 算数类型表: 类型 含义 最小储存空间 bool 布尔型 - char 字 ...
- 《C++Primer》第五版习题答案--第二章【学习笔记】
C++Primer第五版习题解答---第二章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/9 第二章:变量和基本类型 练习2.1: 类 ...
- C++ primer的第二章的主要内容
这第二章主要是介绍了C++中基本的内置数据类型:整型与浮点型.介绍了什么是变量的过程中了解到了左值与右值的概念.左值是可以出现在赋值语句的左边或者右边,也就是说可以放在等号的左右两边,而右值只能是出现 ...
- 【C++】《C++ Primer 》第二章
第二章 变量和基本类型 指针和引用的不同点 引用不是一个对象,它没有实际地址,但是指针是一个对象.允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象. 指针无须在定义时赋初值.
- C Primer Plus_第二章_C语言概述_复习题与编程练习
REVIEW 1.如何称呼C程序的基本模块? ans 它们被称为函数 2.什么是语法错误?给出一个英语例子和一个C语言例子 me C的语法错误是指把正确的C符号放在了错误的位置 likes codin ...
- Java 并发编程实践基础 读书笔记: 第二章 构建线程安全应用程序
1,什么是线程安全性? 简单概括就是一个类在多线程情况下能安全调用就是线程安全 2,Servlet 的线程安全性 默认是非线程安全的,写servlet代码的时候需要注意线程安全,注意同步 3,vo ...
- c++ primer plus 第二章 \n与endl在输出上的区别
在书上看到如下一段话: 一个差别是,endl确保程序继续运行前刷新输出(将其立即显示在屏幕上):而使用"\n"不能提供这样的保证,这意味着在有些系统中,有时可能在您 ...
- c++ primer plus 第二章 课后题答案
#include<iostream> using namespace std; int main() { cout << "My name is Jiantong C ...
随机推荐
- jackson学习之七:常用Field注解
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 【洛谷 p3366】模板-最小生成树(图论)
题目:给出一个无向图,求出最小生成树,如果该图不连通,则输出orz. 解法:Kruskal求MST. 1 #include<cstdio> 2 #include<cstdlib> ...
- codeforces629C Famil Door and Brackets (dp)
As Famil Door's birthday is coming, some of his friends (like Gabi) decided to buy a present for him ...
- Codeforces Global Round 12 D. Rating Compression (思维,双指针)
题意:给你一长度为\(n\)的数组,有一长度为\(k\ (1\le k \le n)\)的区间不断从左往右扫过这个数组,总共扫\(n\)次,每次扫的区间长度\(k=i\),在扫的过程中,每次取当前区间 ...
- AcWing 247. 亚特兰蒂斯 (线段树,扫描线,离散化)
题意:给你\(n\)个矩形,求矩形并的面积. 题解:我们建立坐标轴,然后可以对矩形的横坐标进行排序,之后可以遍历这些横坐标,这个过程可以想像成是一条线从左往右扫过x坐标轴,假如这条线是第一次扫过矩形的 ...
- Python——Django框架——Model数据库模型
一.设置 1.Django的setting中配置数据库(MySQL配置) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql' ...
- hdu-6237
A Simple Stone Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- C# wpf window
使用vs2017 新建wpf 项目 MainWindow 被定义为partial,是因为他要和xaml的一些属性组合在一起,然后再运行起来,这正是 InitailizeCompoent 这个函数要干的 ...
- Github markdown页面内跳转
基本操作: 请看这里 最典型的就是[alt_content](#jump) 但有时, jump是不太好直接看出来的, 比如下面这个标题, 格式复杂, 那如何获取相应的jump呢? 在Github中, ...
- 前端监控平台 & 架构
前端监控平台 & 架构 1px 透明的 gif 字节小, 43 bytes 支持跨域, 兼容场景多,零配置 https://en.wikipedia.org/wiki/GIF demo htt ...