逆向基础 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 ...
随机推荐
- 使用 with as 优化SQL
当我们书写一些结构相对复杂的SQL语句时,可能某个子查询在多个层级多个地方存在重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQL~ with as ...
- 2020牛客暑期多校训练营(第二场)Fake Maxpooling
传送门:Fake Maxpooling 题意:给出矩阵的行数n和列数m,矩阵 Aij = lcm( i , j ) ,求每个大小为k*k的子矩阵的最大值的和. 题解:如果暴力求解肯定会t,所以要智取 ...
- Codeforces Round #641 div2 B. Orac and Models (DP)
题意:有一个长度为\(n\)的序列\(a\),求一个最长上升子序列,且这个子序列的元素在\(a\)中的位置满足\(i_{j+1}modi_{j}=0\),求这个子序列的最大长度. 题意:这题假如我们用 ...
- Gome 高性能撮合引擎微服务
Gome 高性能撮合引擎微服务 使用 Golang 做计算,gRPC 做服务,ProtoBuf 做数据交换,RabbitMQ 做队列,Redis 做缓存实现的高性能撮合引擎微服务 依赖 具体依赖信息可 ...
- BKDR字符串哈希
BKDR字符串哈希 bkdrhash冲突的可能性非常小,但是由于\(hash\)值非常大不能映射到哈希数组地址上,所以可以通过取余,用余数作为索引地址.但这样做造成了可能的地址冲突. #include ...
- kafka——集群安裝部署(自带zookeeper)
kafka系列文章 第一章 linux单机安装kafka 第二章 kafka--集群安裝部署(自带zookeeper) 一.kafka简介 kafka官网:http://kafka.apache.or ...
- 【非原创】LightOJ - 1284 Lights inside 3D Grid【概率期望】
学习博客: 戳这里 戳这里 戳这里 戳这里 题意: 在一个三维的空间,每个点都有一盏灯,开始全是关的, 现在每次随机选两个点,把两个点之间的全部点,开关都按一遍:问k次过后开着的灯的期望数量: 题解: ...
- pyspark+anaconda配置
参考 https://www.e-learn.cn/content/python/786199 注意 所有的变量都放在环境变量而非用户变量.比如JAVA_HOME. 不然虽然pyspark没问题,但是 ...
- 深入理解JavaScript中的类继承
由于写本文时全部是在编辑器中边写代码边写感想的,所以,全部思想都写在代码注释里面了 // 类继承 //todo.1 extends 关键字 class Animal { constructor(nam ...
- Linux Bash Script loop
Linux Bash Script loop shell 编程之流程控制 for 循环.while 循环和 until 循环 for var in item1 item2 ... itemN do c ...