第一天
典型的C++代码HelloWorld:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
- 以# 开头的语句称为预处理器指令
- iostream中包含了有关输入输出语句的函数
- <<符号表示把字符串" HelloWorld "发送给cout打印
- endl 是控制符,表示重起一行(\n)
C++的编译和执行:
编译和执行过程
- 编译(预处理->编译->目标文件)
形成目标代码/文件,目标代码是编译器的输出结果,常见扩展名为".o"或".obj" - 连接
将目标代码跟C++函数库相连接,并将源程序所用的库代码与目标代码合并
形成最终可执行的二进制机器代码(可执行程序) - 执行
在特定的机器环境下运行C++应用程序
小练习:
#include <iostream>
using namespace std;
int main()
{
cout << "寒冰射手.艾希" << endl;
cout << "伤害:56\t\t\t攻击距离:600" << endl;
cout << "护甲:15.5(+3.4)\t\t魔抗:30(+0.0)\n"
"生命值:395(+79)\t\t生命回复:0.9(+0.11)\n"
"法力值:280(+32)\t\t法力回复:1.26(+0.08)\n"
"移速:325\t\t\t定位:ADC 辅助\n"
"点券:450" << endl;
return 0;
}
·
·
·
第二天
变量、数据类型及运算符:
2.1
计算机执行程序时,组成程序的指令和程序所操作的数据都必须存放在一个地方,这个地方就是计算机的内存,也称为主存或随机访问存储器
变量:变量是计算机中一块特定的内存空间,由一个或多个连续的字节组成。
通过变量名可以简单快速地找到在内存中存储的数据
C++变量命名规则:
- 规定变量名(标示符)只能由字母、数字、下划线3中字符组成;
- 第一个字符必须为字母或下划线,不能是数字;
- 变量名不能包含除_以外的任何特殊字符。如:%、#、逗号,空格等;
- 不可以使用保留字。
C++中常用的关键字:
·
·
·
2.2 数据类型:
注:
在C++中,char类型隶属于int型。C++其他常用数据类型:size_t类型(usigned int)、枚举类型、自定义类型、指针类型、空类型等。
typedef的作用:定义类型的别名。
#include <iostream>
using namespace std;
int main()
{
typedef string wode_string;
wode_string name = "我的类型";
//相当于定义string类型的变量name, string name = "我的类型"
cout << name << endl;
return 0;
}
2.2.1 布尔类型 bool
作用:布尔数据类型代表真或假的值;
bool类型只有两个值:
- true —真(1)
- false —假(0)
bool类型只占一个字节大小
int main()
{
bool flag = true;
cout << flag << endl;
flag = false;
cout << flag << endl;
}
·
·
·
2.3 声明和使用变量
声明变量:
数据类型 变量名;
定义时初始化变量:
数据类型 变量名 = 值;
定义后初始化变量:
数据类型 变量名;
变量名= 值;
注:
- 变量名注意不要重复;
- 一条语句可以声明多个类型相同的变量。
使用单精度浮点型变量:
float:
位数:32位
空间:4 字节
取值范围:-3.4E + 38~ + 3.4E + 38
6~7位有效数字
例题:已知圆柱体的半径和高,求圆柱体的体积
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const float PI = 3.14f; //定义了一个float类型的常量
float radius = 2.5f;//半径
float height = 90.0f;
double volume = PI * pow(radius, 2) * height;
cout << "体积是:" << volume << endl;
return 0;
}
注:
- float类型变量赋值时可在数值的末尾加上一个 f
- cmath头文件定义了C++中的库函数,其中的c表示函数是来自c标准库的函数,math为数学常用库函数。
使用双精度浮点型变量:
double:
位数:64位
空间:8 字节
取值范围:-1.7E308 ~ 1.7E308
15位有效数字
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
//控制cout的显示精度
//1.让浮点型固定以数字的方式显示
cout << fixed;
//2.控制显示的精度,(保留两位)
cout << setprecision(2);
double doubleNum = 10.0 / 3.0;
cout << doubleNum * 1000000 << endl;
return 0;
}
sizeof :用来测量数据类型 的长度。
#include <iostream>
using namespace std;
int main()
{
cout << sizeof(double) << endl;
cout << sizeof(long double) << endl;
}
转义序列:
·
·
·
·
·
第三天
运算符
算术运算符:
一元:++、–
二元:+、-、*、/、%
赋值运算符:
单等号 = (计算顺序:从右往左)
关系运算符
逻辑运算符:
位运算符
(1)
按位非 ~
1、二进制取反
2、负数二进制转换成10进制:
将二进制取反,然后 + 1,结果为负
以 2 为例:
转成二进制:00000010(正)
取反:11111101(负)
转10进制:11111101 - > 00000010 + 1 = 11 ,取负数:-3
cout << ~2 << endl; //运行结果:-3
(2)
左移 << 右移 >> 运算符,跟cout << 运算符不一样
cout<< :运算符重载
重载:函数或者方法有相同的名称,但是参数列表不相同,其作用效果也不相同,这样的同名不同参数的函数或者方法,称为重载函数或者方法。
2 << 3(左移3位):
10. -> 10000. (1跟小数点的距离加3)
cout << (2 << 3) << endl; //运行结果:16
(3)
作用:通过三目运算符实现简单的判断
语法:表达式1 ?表达式2 :表达式3
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
int main()
{
int a = 10, b = 20, c = 0;
c = a > b ? a : b;
cout << "c = " << c << endl;
//三目运算符返回值是变量,可以继续赋值
(a > b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
sizeof运算符:
使用sizeof运算符可以获得数据类型占用内存空间的大小(结果以字节为单位)。
#include <iostream>
using namespace std;
int main()
{
cout << setw(23) << "sizeof(char) = " << sizeof(char) << '\n';
cout << setw(23) << "sizeof(short) = " << sizeof(short) << '\n';
cout << setw(23) << "sizeof(int) = " << sizeof(int) << '\n';
cout << setw(23) << "sizeof(long) = " << sizeof(long) << '\n';
cout << setw(23) << "sizeof(long long) = " << sizeof(long long) << '\n';
cout << setw(23) << "sizeof(float) = " << sizeof(float) << '\n';
cout << setw(23) << "sizeof(double) = " << sizeof(double) << '\n';
cout << setw(23) << "sizeof(long double) = " << sizeof(long double) << endl;
return 0;
}
表达式:符号与操作数的组合
条件结构:
if结构(先判断后执行):
多重 if 结构:
switch结构:
使用switch结构时的注意点:
- switch后的表达式只能是整型或字符型
- case后常量表达式的值不能相同
- case后允许多条语句,不需要大括号
- 如果不添加break语句,需要特别注意执行顺序
- case和default子句的先后顺序可以自行变动
- default子句可以省略
switch和多重 if 对比:
相同点:都是用来处理多分支条件的结构;
不同点:
switch:等值条件判断-条件是有限个的时候;
if :判断某个连续区间时的情况