第一天—C++语法基础

一、开篇:查看 C++ 编译器版本

在学习 C++ 之前,了解了首先如何知道自己使用的编译器支持哪个 C++ 标准(如 C++11、C++17 等),这对后续使用新特性至关重要。通过__cplusplus宏可以直接查看:

#include <iostream>
using namespace std;

int main(){
    cout << __cplusplus << endl;  // 输出C++标准版本号
    return 0;
}

输出说明:

  • C++98:199711L
  • C++11:201103L
  • C++14:201402L
  • C++17:201703L
  • C++20:202002L

通过这个小代码,能快速确认编译器环境,避免因版本不兼容导致的语法错误。

二、实用优化:快速输入输出(取消同步流)

在 C++ 中,cincout默认与 C 语言的stdio同步,导致输入输出速度较慢。在处理大量数据时,可通过以下代码取消同步,提升效率:

#include <bits/stdc++.h>  // 万能头文件(包含大部分常用头文件)
using namespace std;

int main(){
    // 取消同步流,加速cin/cout(必须放在输入输出前)
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int a,b;
    cin >> a >> b;
    cout << a + b << '\n';  // 用'\n'代替endl(减少缓冲区刷新开销)
    return 0;
}

核心知识点:

  • ios::sync_with_stdio(0):取消cin/coutstdio的同步,提速核心。
  • cin.tie(0)/cout.tie(0):解除cincout的绑定(默认绑定会导致每次cin前刷新cout)。
  • 万能头文件<bits/stdc++.h>:包含所有标准库头文件(注意:部分编译器可能不支持,正式项目建议按需包含头文件)。

三、函数基础:无参无返回值函数

函数的最简化形态 —— 不需要输入参数,也不需要返回结果,仅执行特定操作(如打印信息)。

// 无参数无返回值函数
#include <iostream>
using namespace std;

void sayHello(){
	cout << "Hello,World!" <<endl;
} 

int main(){
	sayHello();
	return 0;
}

四、函数基础:有参有返回值函数

函数接收输入参数,经过处理后返回结果,是最常用的函数形态。

// 有参数有返回值的函数
#include <iostream>
using namespace std;

// 计算两个数的最大值
int getMax(int x, int y){
	if(x > y){
		return x;
	}else{
		return y;
	}
}

int main(){
	int a = 10, b = 20;
	int maxValue = getMax(a, b);
	cout << "最大值是" << maxValue << endl;
	return 0;
}

五、函数进阶:多参数函数

函数可以接收多个不同类型的参数,只需在参数列表中用逗号分隔,按顺序传递即可。

// 多参函数
#include <iostream>
using namespace std;

// 计算三个数的平均值
double avg(int a, int b, int c){
	double sum = a + b + c;
	double avge = sum / 3.0;
	return avge;
} 

int main(){
	int a = 10, b = 20, c = 30;
	int average = avg(a,b,c);
	cout << "平均数是" << average <<endl;
	return 0; 
}

六、函数模块化:声明与定义分离

当代码量较大时,将函数的声明和定义分离,能让代码结构更清晰。

// 函数声明与定义分离 
#include <iostream>
using namespace std;

// 函数声明 
int multiply(int a, int b);

int main(){
	int result = multiply(5,6);
	cout << "5 x 6 = " << result << endl;
	return 0;
} 

// 定义函数
int multiply(int a, int b){
	return a * b;
} 

七、C++ 特性:函数重载(同名函数多态)

C++ 允许在同一作用域中定义多个函数名相同、参数列表不同的函数,编译器会根据实参自动匹配对应的函数 —— 这就是函数重载。

// 函数的重载
#include <iostream>
using namespace std;

int add(int a, int b){
	return a * b;
} 

double add(double a, double b){
	return a + b;
}

int main(){
	cout << add(3,4) << endl;
	cout << add(1.3, 1.6) << endl;
	return 0;
}

八、函数进阶:递归函数(自己调用自己)

递归函数是指在函数体内调用自身的函数,核心是 “拆分问题 + 终止条件”,常用于解决阶乘、斐波那契数列、树遍历等问题。

// 递归函数
#include <iostream>
using namespace std;

// 计算阶乘:n! = n x (n - 1) x (n - 2) x ... x 1
int factorial(int n){
	if(n < 1){
		return 1;	// 递归终止条件 
	}
	return n * factorial(n - 1);	// 递归调用 
} 

int main(){
	int num = 10;
	cout << num << "! = "<< factorial(num) << endl;
	return 0;
} 
posted @ 2025-11-24 22:49  smile_Lx  阅读(0)  评论(0)    收藏  举报