.cpp里面可写任何C的东西
.c里不能写C++的
字节: 存储信息的基本单位Byte => B
位: 信息存储的最小单位 bit => b
一位就是一个二进制
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
1B = 8bit
1024 512 256 128 64 32 16 8 4 2 1;
1024 = 2的10次方;
8GB = 8 * 1024MB
8GB = 8 * 1000 / 1024
文件和程序是下载和存储在硬盘上
一旦程序执行, 数据会被加载到内存中
CPU 内存 硬盘
硬盘: 容量大, 速度慢 500GM = > 500
永久存在的
内存: 容量一般, 速度较快
断电信息就没了
CPU: 容量极小, 速度极快 10MB => 2000
变量:
存储信息的容器
常量:
int a = 5;
const int a = 5; // 常量
基本数据类型
整数
short 2
int 4
long long 8
最大上限
默认用 int
00000000 00000000 00000000 00000000
1 0, 1
2 00, 01, 10, 11
3 000, 001, 010, 011
100, 101, 110, 111
32 => 2^32 = 4294967296
2^32 / 2 = 2^31
int => MAX = 2^31 - 1 = 2147483647
50000 * (0 到 50000)
64 => 2^64 = 18446744073709551616
小数
float 4 7位
double 8 15位
精确的小数位不一样
默认用double
布尔值
bool 1
true, false
字符
char 1
char a = 'A';
' ' 字符串常量
" " 字符串变量
复合数据类型
字符串
结构体
算术运算符:
+ - * / %
/:
5 / 2 = 2
5.0 / 2 = 2.5
%:
5 % 2 = 1
4 % 2 = 0
2 % 4 = 2
符合运算符:
+= -= *= /= %=
int a = 5;
a += 1; //a = a + 1;
cout << a;
C++输入输出:
int a;
int a, b, c;
cin >> a;
cin >> a >> b;
cout << a << endl; // end line;
cout << a << " " << b;
cout << a << " " << b;
int a, b;
cin >> a >> b;
cout << (a + b) * 2 << endl;
cout << a * b << endl;
cout << (a + b) * 2 << endl << a * b;
C的输入输出:
int a, b, c;
scanf("%d", &a);
scanf("%d %d", &a, &b);
printf("%d", a);
printf("%d %d", a, b);
printf("%d\n%d\n", a, b);
格式化输出
%d => int
%lld => long long
%f => float
%lf => double
%c = > char
C++ 保留小数:
#include <iomanip>
double s = 124;
int n = 7;
cout << fixed << setprecision(5) << s / n << endl;
C语言保留小数:
printf("%.5lf", s / n);
强制转换和隐式转换
// 强制
int a = 5, b = 2;
cout << a / b << endl;
cout << double(a) / b << endl;
cout << (double)a / b << endl;
cout << (double)(a + b + b) / b << endl;
// 隐式
int a = 5, b = 2;
cout << a * 1.0 / b << endl;
// 默认值的问题
int b; // 有值, 是0
int main(){
int a; // 有值, 但是是随机的, 对我们没有用 大概率是0
return 0;
}
交换值的问题
int a = 5, b = 6;
int main(){
c = a;
a = b;
b = c;
cout << a << " " << b;
return 0;
}
int a = 5, b = 6;
int main(){
a = a + b;
b = a - b;
a = a - b;
cout << a << " " << b;
return 0;
}
int a = 5, b = 6;
int main(){
swap(a, b);
cout << a << " " << b;
return 0;
}
1234 % 10 = 4
1234 / 10 = 123
123 % 10 = 3
123 / 10 = 12
12 % 10 = 2
12 / 10 = 1
1 % 10 = 1
1 / 10 = 0
while(n != 0){
cout << n % 10;
n /= 10;
}
常用库函数
#include <cmath>
abs():
abs(-5) = 5;
abs(5) = 5;
fabs(): float小数用这个
fabs(-5.5) = 5.5
pow():
pow(2, 3) = 8.0
pow(3, 2) = 9
sqrt():
sqrt(9) = 3.0
ceil():
ceil(4.1) = 5.0
ceil(4.5) = 5.0
ceil(4.9) = 5.0
floor():
floor(4.1) = 4.0
floor(4.5) = 4.0
floor(4.9) = 4.0