实话说,我本来不打算写这个的,但作为一个强迫症,草草写一点吧。
C++语法入门与进阶知识
一、C++基础语法
1. 基本结构
#include <iostream> // 头文件包含
using namespace std; // 使用标准命名空间
int main() { // 主函数
cout << "Hello, World!" << endl; // 输出语句
return 0; // 返回值
}
2. 数据类型
- 基本类型:
int
,float
,double
,char
,bool
- 类型修饰符:
signed
,unsigned
,short
,long
- 类型大小:
sizeof(类型或变量)
3. 标准模板库(STL)
- 容器:
vector
,map
,set
等 - 算法:
sort
,find
等
4. 变量与常量
int a = 10; // 变量
const float PI = 3.14; // 常量
auto b = 5.6; // 自动类型推断(C++11)
5. 运算符
- 算术:
+ - * / % ++ --
- 关系:
== != > < >= <=
- 逻辑:
&& || !
- 位运算:
& | ^ ~ << >>
- 赋值:
= += -= *= /= %= <<= >>= &= ^= |=
- 其他:
sizeof ?: , :: . ->
二、控制结构
1. 条件语句
// if-else
if (表达式1)
// ...
else if (表达式2)
// ...
else
// ...
// switch
switch (值1) {
case 值2://如果值1等于值2,那么:
// f(x)
break;
case 值3:
// ...
break;
}
2. 循环结构
// while
while (表达式) //如果值为真,那么:
// ...
// do-while
do
{
// 不管了,先做再说
}
while (表达式);
// for
for (int i = 1; i <= n; i++) //i:1->n,写法很多,比如 i 提前定义,i *= 2等,在此不过多赘述
// ...
另有for的2.0版本
#include <iostream>
using namespace std;
int i = 1;
string n = "hello world";
int main()
{
for (auto i : n) //i:0->n.size()-1 遍历字符串
{
cout<<i;
i = 'l';//(试图)改变字符串
}
cout<<endl<<n<<endl;//结果可知上述代码并未改变字符串
for (auto &i : n) //i:0->n.size()-1 遍历字符串并修改
{
cout<<i;
i = 'l';
}
cout<<endl<<n; //结果可知上述代码改变了字符串,重点在取地址符(&)
return 0;
}
三、函数
1. 函数定义
返回类型 函数名(参数列表) {
// 函数体
return 返回值; // 如果返回类型不是void
}
// 示例
int add(int a, int b) {
return a + b;
}
2. 函数特性
- 函数重载:同名函数,参数不同
- 内联函数:
inline
关键字 - 递归函数:函数调用自身
四、编程DeBug
异常处理(煎蛋,不多讲了)
try {
// 可能抛出异常的代码
throw err;
} catch (err e) {
// 异常处理
} catch (...) {
// 捕获所有异常
}
五、文件操作(煎蛋,不多讲了)
freopen("输入文件","r",stdin);
freopen("输出文件","w",stdout);