【笔记】C++学习笔记

前言

C++学习笔记

主函数

  • 程序的入口
  • 有且只有一个主函数
1
2
3
4
5
6
7
8
9
#include <iostream>

int main()
{

...

return 0;
}

输出语句

  • 可以输出多组数据
  • 浮点数默认会显示6位有效数字
1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;

int main()
{
cout << "字符串" << 变量名 << endl;

return 0;
}

注释

1
2
3
// 单行注释

/* 多行注释 */

变量

  • 方便管理内存空间

定义变量

1
数据类型 变量名 = 值;

常量

常量的定义

宏常量

  • 通常在文件的上方定义
1
#define 常量名 常量值

被const修饰的变量

1
const 数据类型 常量名 = 值;

关键字

  • C++中保留的单词(标识符)
  • 关键字不能作为变量名或常量名

标识符命名规则

  • 标识符不可以是关键字
  • 标识符只能由字母、数字、下划线组成
  • 第一个字符不能是数字
  • 标识符中区分大小写

数据类型

整型

数据类型 标识符 占用空间 取值范围
短整型 short 2Byte -2^15~2^15-1
整型 int 4Byte -2^31~2^31-1
长整型 long 4Byte(Windows、32位Linux)、8Byte(64位Linux) -2^31~2^31-1
长长整型 long long 8Byte -2^63~2^63-1

实型(浮点型)

  • 用于表示小数
  • 有效数字包含小数点前和小数点后的非0数字
数据类型 标识符 占用空间 取值范围
单精度 float 4Byte 7位有效数字
双精度 double 8Byte 15~16位有效数字

科学计数法

  • 通过科学计数法表示浮点数
1
2
3
4
5
// 表示 3 * (10 ^ 2)
float 变量名 = 3e2;

// 表示 3 * (0.1 ^ 2)
float 变量名 = 3e-2;

float数据表示

  • float数据推荐在末尾添加f标记
1
float 变量名 = 0.1f;

字符型

数据类型 标识符 占用空间
字符型 char 1Byte

定义一个字符型变量

  • 字符型只能存储1个字符
  • 字符型数据只是把字符对应的Ascii码值存入内存
1
char 变量名 = 'a';

字符串型

C语言风格

字符串定义
1
char 变量名[] = "字符串";

C++风格

字符串定义
1
string 变量名 = "字符串";
字符串使用
  • 必须引入头文件
1
#include <string>
  • 使用字符串
1
变量名

布尔型

  • 布尔型数据只有两个值
    • true:真,本质上是1
    • false:假:本质上是0
  • 在布尔型数据中,可以用0表示假,任何非0数据表示真
数据类型 标识符 占用空间
布尔型 bool 1Byte

转义字符

转义字符 含义 Ascii码值(十进制)
\a 警报 007
\b 退格(BS),将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF),将当前位置移到下一行开头 010
\r 回车(CR),将当前位置移到本行开头 013
\t 水平制表(HT) 009
\v 垂直制表 011
\\ 反斜杠 092
\' 单引号 039
\" 双引号 034
\? 问号 063
\0 数字0 000
\ddd 8进制转义字符(d的范围:0~7) 3位8进制
\xhh 16进制转义字符(h的范围:09、az、A~Z) 3位16进制

sizeof关键字

  • 得到占用内存空间
1
2
3
sizeof(数据类型标识符);

sizeof(变量名);

输入语句

  • 从键盘上获取数据
1
2
数据类型 变量名 = 默认值;
cin >> a;

生成随机数

  • 生成[0,num)的随机数
1
rand()%100;

利用随机数种子生成随机数

  • 将当前时间作为随机数种子,生成[0,num)的随机数
1
2
3
4
#include <ctime>

srand((unsigned int) time(NULL));
rand()%100;

运算符

算术运算符

  • +(正号)、-(负号)、+(加号)、-(减号)、*/%(取模)、++(递增)、--(递减)

注意事项:
两个整数相除的结果还是整数,小数部分会被舍弃
因为在数学中0不可以作为被除数,所以无论是除法还是取模,被除数都不能为0
递增和递减分为前置和后置。前置:先自增、再参与计算;后置:先参与计算、再自增

赋值运算符

  • =+=-=*=/=%=

比较运算符

  • 比较运算符计算后会得到布尔值

  • ==!=<><=>=

逻辑运算符

  • &&||!

程序流程结构

  • 顺序结构、选择结构、循环结构

选择结构

if语句

单行if语句
1
2
3
4
if (条件)
{
条件成立时执行的语句
}
多行if语句
1
2
3
4
5
6
7
8
if (条件)
{
条件成立时执行的语句
}
else
{
条件不成立时执行的语句
}
多条件if语句
1
2
3
4
5
6
7
8
9
10
11
12
if (条件1)
{
条件1成立时执行的语句
}
else if (条件2)
{
条件2成立时执行的语句
}
else
{
条件1和条件2都不成立时执行的语句
}

三目运算符

1
表达式?表达式成立时执行的语句:表达式不成立时执行的语句;

switch语句

1
2
3
4
5
6
7
8
9
10
11
12
switch (表达式)
{
case 结果1:
表达式等于结果1时执行的语句
break;
case 结果2:
表达式等于结果2时执行的语句
break;
...
default:
以上结果都不成立时执行的语句
}

循环结构

while语句

1
2
3
4
while (表达式)
{
表达式成立时循环执行的语句
}

do…while语句

  • 先执行一次循环语句,再进行判断
1
2
3
4
5
do
{
表达式成立时循环执行的语句
}
while (表达式);

for语句

1
2
3
4
for (起始表达式; 条件表达式; 末尾循环体)
{
循环语句
}

跳转语句

终止循环

1
break;

跳过本次循环

1
continue;

无条件跳转

指定标记

1
2
标记:
其他语句

跳转到标记位置

1
goto 标记;

获取变量的地址

1
&变量名

防止头文件重复包含

1
#pargma once

立即退出程序

1
exit(0);

执行DOS命令

<dos>:DOS命令

1
system("<dos>");

完成

参考文献

哔哩哔哩——黑马程序员