C++ 学习笔记分为三部分:
- C++ 基本语法
- C++ 核心编程
- 面向对象编程
- C++ 提高编程
- 泛型编程思想以及 STL 的基本使用
编写一个 C++ 程序总共分为 4 个步骤:
- 创建项目
- 创建文件
- 编写代码
- 运行程序
第一个 C++ 程序:HelloWorld
#include <iostream>
using namespace std;
int main() {
cout << "HelloWorld" << endl;
//system("pause");
return 0;
}作用:给一段指定的内存空间起名,方便操作这段内存。
举例:variable.cpp
#include <iostream>
using namespace std;
int main() {
//变量的定义:
//语法:数据类型 变量名 = 初始值
int a = 10;
cout << "a = " << a << endl;
return 0;
}作用:用于记录程序中不可更改的数据。
C++ 定义常量两种方式:
- #define 宏常量:#define 常量名 常量值
- 通常在文件上方定义,表示一个常量
- const 修饰的变量:const 数据类型 常量名 = 常量值
- 通常在变量定义前加关键字 const,修饰该变量为常量,不可修改
举例:constant.cpp
#include <iostream>
using namespace std;
//宏常量
#define N 7
int main() {
//N = 5; 不允许修改
cout << N << endl;
//const修饰的变量
const int month = 4;
//month = 5; 不允许修改
cout << month << endl;
return 0;
}作用:关键字是 C++ 中预先保留的单词(标识符)。
| asm | do | if | return | typedef |
|---|---|---|---|---|
| auto | double | inline | short | typeid |
| bool | dynamic_cast | int | signed | typename |
| break | else | long | sizeof | union |
| case | enum | mutable | static | unsigned |
| catch | explict | namespace | static_cast | using |
| char | export | new | struct | virtual |
| class | extern | operator | switch | void |
| const | false | private | template | volatile |
| const_cast | float | protected | this | wchar_t |
| continue | for | public | throw | while |
| default | friend | register | true | |
| delete | goto | reinterpret_cast | try |
作用:C++ 规定给标识符(变量、常量)命名时,有一套自己的规则。
- 标识符不能是关键字
- 标识符只能由字母、数字、下划线组成
- 第一个字符必须是字母或者下划线
- 标识符中字母区分大小写
建议:标识符命名时,尽量见名知意!
C++ 规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。
区别:数据类型所占内存大小不一样
| 数据类型 | 占用空间 | 取值范围 |
|---|---|---|
| short | 2 字节 | -2^15 - 2^15-1 |
| int | 4 字节 | -2^31 - 2^31-1 |
| long | win 4 字节,Linux 32 位 4 字节,64 位 8 字节 | -2^31 - 2^31-1 |
| long long | 8 字节 | -2^63 - 2^63-1 |
作用:利用 sizeof 关键字可以统计数据类型所占内存大小。
举例:sizeof.cpp
#include <iostream>
using namespace std;
int main() {
//利用sizeof求出数据类型占用内存大小
//语法:sizeof(数据类型) 或 sizeof(变量)
short a = 10;
cout << sizeof(short) << endl;
cout << sizeof(a);
return 0;
}short < int <= long < long long
浮点型,又称为实型
作用:用于表示小数。
浮点型变量分为两种:
- 单精度 float
- 双精度 double
两者的区别在于表示的有效数字范围不同。
默认情况下,输出一个小数,会显示出 6 位有效数字。
| 数据类型 | 占用空间 | 有效数字范围 |
|---|---|---|
| float | 4 字节 | 7 位有效数字 |
| double | 8 字节 | 15-16 位有效数字 |
举例:float.cpp
#include <iostream>
using namespace std;
int main() {
float f = 3.14f;
double d = 3.14;
cout << f << endl;
cout << d;
return 0;
}科学计数法:
- float f = 3e2; //表示 300
- float f = 3e-2; //表示 0.03
作用:字符型变量用于显示单个字符。
语法:char ch = 'a';
- C 和 C++ 中字符型变量只占用 1 个字节。
- 字符型变量并非把字符本身放到内存中存储,而是将对应的 ASCII 编码放入到存储单元。
作用:用于表示一些不能显示出来的 ASCII 字符。
现阶段常用的转义字符有:\ n,\ \,\ t
作用:用于表示一串字符
两种风格:
- C 风格字符串:char 变量名[ ] = "字符串值"
- C++ 风格字符串:string 变量名 = "字符串值"
#include <iostream>
#include <string> //用于C++风格的字符串
using namespace std;
int main() {
char str[] = "Hello World";
cout << str << endl;
string a = "Hello World";
cout << a;
return 0;
}作用:布尔数据类型(bool)代表真或假的值。
bool 类型只有两个值:
- true 真(本质是 1)
- false 假(本质是 0)
bool 类型占 1 个字节大小。
#include <iostream>
using namespace std;
int main() {
//创建bool数据类型
bool flag = true;
cout << flag << endl;
//查看内存空间大小
cout << sizeof(bool);
return 0;
}作用:用于从键盘获取数据
关键字:cin
语法:cin >> 变量;
示例:
#include <iostream>
using namespace std;
int main() {
int x;
cin >> x;
cout << x;
return 0;
}作用:用于执行代码的运算
作用:用于处理四则运算
示例:
#include <iostream>
using namespace std;
int main() {
//加减乘除
int a = 10;
int b = 3;
cout << a + b << endl;
cout << a - b << endl;
cout << a * b << endl;
cout << a / b << endl;
cout << a % b << endl;
return 0;
}作用:用于将表达式的值赋给变量
作用:用于表达式的比较,并返回一个真值或假值
示例:
#include <iostream>
using namespace std;
int main() {
int a = 10;
int b = 3;
//有优先级的运算,所以要加括号
cout << (a == b) << endl;
return 0;
}作用:用于根据表达式的值返回真值或假值
C / C++ 支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构
作用:执行满足条件的语句
if 语句的三种方式:
- 单行格式 if 语句
- 多行格式 if 语句
- 多条件的 if 语句
示例:三只小猪称体重
【题目】有三只小猪 ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?
【代码】
#include <iostream>
using namespace std;
int main() {
//三只小猪称体重,判断哪只最重
int num1 = 0;
int num2 = 0;
int num3 = 0;
//用户输入重量
cout << "请输入小猪A的体重" << endl;
cin >> num1;
cout << "请输入小猪B的体重" << endl;
cin >> num2;
cout << "请输入小猪C的体重" << endl;
cin >> num3;
//判断
if (num1 > num2) {
if (num1 > num3) {
cout << "小猪A最重" << endl;
} else {
cout << "小猪C最重" << endl;
}
} else {
if (num2 > num3) {
cout << "小猪B最重" << endl;
} else {
cout << "小猪C最重" << endl;
}
}
return 0;
}作用:通过三目运算符实现简单的判断
语法:表达式1?表达式2:表达式3
示例:
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a > b ? a : c);
return 0;
}





