First Day
信息的存储单位
位(bit,b):数据的最小单位,表示以为二进制信息。
字节(byte,B):八位二进制的数字数组(1 byte = 8 bit)。
模数
n位二进制整数的模为2^n。
几位小数的模为2。
补数
一个数减去另一个数(加一个负数)等于第一个数加第二个数的补数。
浮点数表示小数
N=M*2^E
E:2的幂次,称数N的阶码,反应该浮点数表示的数据范围。
M:N的位数,其位数反应数据精度。
C++特点
- 兼容C,支持面向过程的程序设计。
- 支持面向对象的方法。
- 支持泛型程序设计方法。
C++字符集
大小写英文字母。
数字。
特殊字符。
构词法
关键字,标识符,文字,分隔符,运算符,空白符。
基本数据类型
整数,实数,字符,布尔。
程序中的数据。
常量,变量。
整数
int,signed(有符号),unsigned(无符号),short,long,long long。
字符
char
浮点数
单精度(float),双精度(double),扩展精度(long double)
进制
八进制
0255555
十六进制
0x55668
C风格字符串常量
- 一对双引号括起来的字符序列
- 在内存中按字符排列顺序存放
- 在末尾添加’\0’作为结束标记
“a” a\0
‘a’ a
初始化
int a=0;
int a(0);
初始化列表
不允许数据的丢失
int a={0};
int a{0};
符号常量
const 数据类型说明符 常量名=常量值
数据类型说明符 const 常量名=常量值
定义时需要初始化且程序中不能修改
例如
const float PI=3.14159;
十种复合运算符
+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
例代码1
#include <iostream>
using namespace std;
int main()
{
const double pi(3.1415926);
int radius;
cout << "Please enter a radius!\n";
cin >> radius;
cout << "The radius is " << radius << '\n';
cout << "PI is " << pi << '\n';
cout << "Please enter a different radius!\n";
cin >> radius;
cout << "Now the radius is changed to " << radius << '\n';
cout << "PI is still " << pi << '\n';
return 0;
}
Second Day
逗号运算
表达式1,表达式2
先表达式1,再表达式2,最终结果为表达式2的值
例:
a=35,a4 ; 其结果为60;
sizeof运算
sizeof(类型名)或者 sizeof 表达式
结果: "类型名"所指定的类型或者表达式的结果类型所占的字节数。
例:
sizeof(short)
sizeof x
位运算
- 按位与(&)
有0则0,无0则1
置零,取指定位 - 按位或(|)
置1 - 按位异或(^)
相同为0,不同为1
使特定位翻转 - 取反(~)
- 移位(<<,>>)
左移(<<):
低位补0,高为舍弃。
右移(>>):
低位舍弃,若高位无符号,补0,若高位有符号,补符号位。
显示转换
类型说明符(表达式)
(类型说明符)表达式
类型转换操作符 <类型说明符> (表达式)
类型转换操作符:
const_cast
dynamic_cast
reinterpret_cast
static_cast
例:
int(z)
(int)z
static_cast <int> (z)
常用的IO流类操作符
dec | 数值数据采用十进制表示 |
hex | 数值数据采用十进制表示 |
oct | 数值数据采用八进制表示 |
ws | 提取空白符 |
endl | 插入换行符,并刷新流 |
ends | 插入空白符 |
setsprecison(int) | 设置浮点数的小数位数(包括小数点) |
setw(int) | 设置域宽 |
例:
cout <<setw(5)<<setsprecision(3)<<3.1415;
例代码2
#include <iostream>
using namespace std;
int main()
{
//sizeof 运算符 输出字节数
cout << "The size of int is " << sizeof(int) << " bytes! \n";
cout << "The size of long is " << sizeof(long) << " bytes! \n";
int x;
unsigned int y = 100; //unsigned 无符号数
unsigned int z = 50;
x = y - z;
cout << "Different is : " << x << "\n";
x = z - y;
cout << "Now different is : " << x << "\n";
int a, b, c;
cout << "input value of a :\n";
cin >> a;
cout << "input value of b :\n";
cin >> b;
c = (a - b) > 0 ? (a - b) : (b - a); //条件判断
cout << "The different of a and b is : " << c << "\n";
return 0;
}
Three Day
if语句
switch
while
do…while
for
typedef 已有类型名=新类名
using 新类名=已有类型名
枚举类型
不限定作用域 enum 枚举类型名 {变量值列表}
- 枚举元素是常量,不能赋值
- 具有默认值
- 可以在声明时另行指定枚举元素的值
- 枚举元素可以进行关系运算
- 整数值不能直接赋值给枚举变量(如果需要,应进行强制类型转换)
- 可以给整型变量赋值
auto类型与decltype类型
auto:
编译器通过初始值自动判断变量的类型
auto val = val1+val2
decltype:
定义一个变量与某一表达式的类型相同,但并不同该表达式初始化变量
decltype(i) j=2;
表示j以2作为初始值,类型与i一致
函数定义
类型标识符 函数名 (形式参数表)
{
语句列表
}
形式参数表 = <type1>name,<type2>name1........
函数调用
调用前需声明
函数的参数传递
- 在函数被调用时才分配形参的存储单元
- 实参可以使常量,变量或表达式
- 实参类型必须与形参一致
- 值传递是传递参数值,即单向传递
- 引用传递可以实现双向传递
- 常引用做参数可以保障实参数据的安全
引用类型
- 一旦一个引用初始化后,就不能改为指向其他对象
- 引用可以作为形参
内联函数
- 不能有switch语句和循环体
- 内联函数的定义必须出现在内联函数第一次被调用之前
- 对内联函数不能进行异常接口声明
面对对象的基本特点
抽象,封装,继承,多态
类定义
class 类名称
{
public:公有成员(外部接口)
private:私有成员
protected:保护型成员
}
对象定义
类名称 对象名
Clock C2;