说明:以下图片及知识点均来自于学堂在线c++程序设计基础–by 清华大学郑莉教授,仅自己在博客做一个总结,作为自己复习所用,无其他用途
计算机软件
- 应用软件
我们平常使用安装的软件 - 系统软件
是指操作系统,linux,windows,macos等 - 中间件
提供系统软件和应用软件之间链接的软件(大型应用软件需要用到)
软件=程序+文档
程序编写完毕后,需要写文档,写说明,描述你的数据结构,描述你的算法。
面向对象的特性
- 继承
- 封装
- 多态
程序翻译过程
高级语言写的代码,必须通过解释,转换成二进制的机器语言,才能让计算机识别,对此,有三种常见的解释方式:
- 汇编程序
将汇编语言源程序翻译成目标程序 - 编译程序
将高级语言源程序翻译成目标程序,一般写好代码后就编译一次,然后通过连接,可以是每个人负责的模块之间连接,还有你调用函数库中的代码也需要连接,连接之后形成一个可执行文件,之后就直接使用这个可执行文件,当有代码改动时再重新编译,发布下一版,windows平台的exe文件,就是这样的可执行程序。优点,编译一次之后就不用再在编译上面浪费时间了。缺点,不能跨平台,在windows编译完形成的可执行文件不能在linux中使用,得重新编译。 - 解释程序
将高级语言源程序翻译成机器指令,它是边翻译变执行,也就是说每次你要使用这个软件,都得让相关的翻译器运行着,翻译一条运行一条,缺点就是慢一些,好处是可以跨平台,因为写好的代码放在不同平台依然可以重新解释,例如java就是采用半编译半解释的方式。
信息的存储单位
位 bit 是信息的最小单位,表示一位二进制数
字节 byte 八个二进制数组成一个字节,1byte = 8bit
千字节 1KB =1024B
兆字节 1MB = 1024K
吉字节 1GB =1024 M
二进制,八进制,十进制,十六进制互相之间转换
二进制转换为八进制,就是将三个二进制看为一个八进制,四个二进制看做一个十六进制
二进制转为十进制,二进制的每一位(0或1)乘以2的位置数减1次的次方,相加。
二进制的负整数如何表示
- 原码 加一个符号位,正数为0,负数为1
- 反码 符号位不变,其余各位取反
- 补码
c++函数作用域分类
函数类型作用域
作用域的范围就是声明函数时,那个放形参的括号(),也叫形参表。所以在函数声明的时候,甚至可以不写变量名,只声明变量类型都可以(当然不推荐这样,因为可读性不好),因为形参表中的变量作用域只存在与括号内,编译器在编译过程中只在乎参数类型和顺序,因为出了这个括号这几个变量作用域就结束了,即使实参传进来,和形参结合时,也不需要管形参叫啥,只要按照对的变量类型和顺序,就能把实参成功和形参结合。
局部作用域(块作用域)
在函数体实现的大括号内,就是局部作用中“局部”的范围,同时在这里面再写一个大括号,那这个新加的大括号内又会形成一个局部作用域,在这里面新定义的变量,局部作用域的范围就在新的打括号内。
类作用域
类的成员具有类作用域,其范围包括类体和成员函数体
文件作用域
不是以上的几个,剩下的就是文件作用域,其作用域开始于声明点,结束于文件尾。也称为静态作用域
命名空间作用域
(之后补充)
样例程序
//lab5_1.cpp
#include <iostream>
using namespace std;
void fn1();
int x = 1, y = 2;
int main()
{
cout << "Begin..." << endl;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "Evaluate x and y in main()..." << endl;
int x = 10, y = 20;
cout << "x = " << x << endl;
cout << "y = " << y << endl;
cout << "Step into fn1()..." << endl;
fn1();
cout << "Back in main" << endl;
cout << "x = " << x << endl;
cout <<<