1.计算机和C++入门
1.1计算机系统
计算机要遵循的一系列指令统称为程序
计算机使用的各种程序称为软件
组装一台计算机所需的物理设备称为硬件
硬件
输入设备:使用户将信息发送给计算机的设备,主要是键盘和鼠标
输出设备:计算机将信息发送给用户的设备,常见的是显示器,有时将键盘和显示器统称 终端
存储器:程序储存在储存器中,分为主存储器和辅助存储器,主存储器相当于一个很长的编号位置列表,这些位置列表就是储存位置 或 内存位置
CPU:中央处理单元
软件
操作系统为计算机必须完成的不同人物分配计算机资源,操作系统实际是一个程序,或者是多个相互协作的程序。程序是计算机需要遵照执行的一系列指令。 数据是向一个程序提供的输入。
字节和位
主内存被划分称为字节的多个编号位置,一个字节的编号位置就是该字节的地址。每个字节都代表一个能容纳8个二进制位的内存位置。
主存储器
主存储器简称内存,也可以简称为RAM,也就是随机存取存储器
辅助存储器
辅助存储器能在计算机使用之后(和之前)持久性地保存数据。
1.2编程和问题求解
算法
用于解决问题的一系列准确的指令称为算法,通常也可以称为方法、指令、过程和例程等。
1.3C++入门
面向对象程序设计
C++完全支持面对对象的程序设计,包括面对对象开发的四大特性:封装、抽象、继承、多态
C++的起源
BCPLC语言->B语言->C语言->C++
标准库
标准的C++有三个重要部分组成:
- 核心语言,提供了所有构件块,包括变量、数据类型和常量等等
- C++标准库,提供了大量的函数,用于操作文件、字符串等等
- 标准模板库(STL),提供了大量的方法,用于操作数据结构等
C++的开发工具
记事本(Notepad++)+命令行
Visual C++ 6.0
VS2015
Code::Blocks
其他开发工具
DEV C++、CLion、C-Free、Xcode、C4droid
一个典型的C++代码
#include <iostream>
using namespace std;
int main()
{
cout <<"hello World!"<<;
return 0;
}
以#开头的语句成为预处理命令,告诉编译器到哪里寻找与程序中使用的特定项目有关的信息、#include语句不是必须的,但如果一旦程序中有该语句,就必须把它放到程序的开始处
将iostream文件的内容添加到程序中,iostream中包含了有关输入输出语句的函数
using namespeace std为使用命名空间,std是standard(标准的意思)的缩写,std::cout或std::endl代表从属的关系
所谓命名空间(namespeace)是一种将程序库名称封装起来的方法。通过这种方法,可以避免和应用程序发生命名冲突的问题(所谓命名冲突时指程序内两个不同的实体具有相同名称,导致程序无法区分两者,命名冲突发生时,程序必须等到命名冲突获得决议之后才得以继续执行)。命名空间像是在冲多名称的课件范围之间暑期的一道围墙。
<<符号表示把字符串"Hello World!"发送给cout打印。endl是控制符,(end line的缩写)表示重起一行(\n)。
与其说是程序显示了一条信息,不如说它s将一个字符插入到了输出流中
。从概念上看,输出是一个流,可以理解成从程序流出的一系列字符。cout右边<<符号是插入运算符,可以将右侧信息插入流中头文件命名约定
头文件类型 | 约定 | 示例 | 说明 |
---|---|---|---|
C旧式风格 | 以.h结尾 | stdio.h/math.h | C、C++通用 |
C++旧式风格 | 以.h结尾 | iostream.h | C++可以使用 |
C++新式风格 | 没有扩展名 | iostream | C++使用,需要使用namespeace |
转换后的C | 加上前缀c,没有扩展名 | cmath/cytype等 | C++使用 |
endl 和 \n的 区别
1.\n为纯粹的换行
2.endl为换行和确保程序立刻输出(清空缓冲区)cin:输入语句,读作“see-in”,用于输入
cout:输出语句,读作“see-out”,用于输出
编程提示
<<和>>表示数据移动的方向
cin >> number;
cout << number;
C++编码规范
1.每条语句占一行
2.每个函数都有一个开始和结束花括号,花括号各占一行
3.函数中的语句相对于花括号进行缩进
4.与函数名称相关的小括号周围没有空白
编译和执行过程
- 编译(预处理->编译->目标文件)
形成可执行代码/文件。可执行代码是编译器的输出结果,文件扩展名为“.o”或“.obj” - 链接
将目标代码跟C++函数库相连接,并将源程序的库代码与目标代码合并,形成最终可执行的二进制代码(可执行程序) - 执行
在特定的机器环境下运行C++应用程序
各种程序错误
语法错误:编译器能够捕捉特定类型的错误,并在检测到错误后输出一条错误信息,表示程序违反了编译语言的语法规则,比如遗漏分号。
警告信息:表明代码从技术上说没有违反语法规则,但出乎寻常,所以它可能是个错误,编译器相当于在说:“你真的是这个意思吗?”
逻辑错误:基础语法错误或者将所发翻译成C++语言的错误,如将*错误的写成了+