1. C++基础核心概念解析
作为一名从2008年就开始使用C++的老程序员,我深知函数、指针和结构体这三个概念对初学者来说有多重要。它们就像C++世界的三原色,掌握好了就能调出各种绚丽的程序色彩。记得我刚学C++时,指针的概念整整困扰了我两周,直到有一天突然开窍——原来指针就是内存的快递单号啊!
C++作为一门系统级编程语言,函数提供了代码复用的基本单元,指针则是直接操作内存的利器,而结构体则是组织复杂数据的容器。这三个概念共同构成了C++区别于其他高级语言的特性基础。无论你是想开发游戏引擎、高频交易系统,还是嵌入式设备驱动,都绕不开这三座大山。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 函数:C++的代码构建块
2.1 函数定义与调用基础
C++函数的基本结构就像是一个黑盒子:输入参数进去,经过处理,返回结果。但魔鬼藏在细节里。先看一个最简单的加法函数:
cpp复制int add(int a, int b) {
return a + b;
}
这个简单的函数里其实包含了几个关键点:
- 返回类型
int:告诉编译器这个函数会返回什么类型的数据 - 函数名
add:函数的唯一标识符 - 参数列表
(int a, int b):定义输入参数的个数和类型 - 函数体
{...}:包含实际执行的代码 return语句:指定函数的输出
重要提示:C++要求函数必须先声明后使用,这就是为什么我们经常在头文件中看到函数声明,而在.cpp文件中看到函数定义。
2.2 函数参数传递的三种方式
参数传递是函数使用中最容易出错的地方之一。C++有三种参数传递方式:
-
传值:创建参数的副本
cpp复制void modify(int x) { x = 10; } // 原始变量不受影响 -
传引用:直接操作原变量
cpp复制void modify(int &x) { x = 10; } // 原始变量被修改 -
传指针:通过地址间接操作
cpp复制void modify(int *x) { *x = 10; } // 原始变量被修改
实际项目中,我建议:
- 小型数据(如基本类型)可以用传值
- 大型对象用const引用传递(避免拷贝开销)
- 需要修改原对象时用非const引用
- 指针通常用于需要处理nullptr或需要重新指向的情况
2.3 函数重载与默认参数
C++允许函数重载——即同名函数根据参数不同执行不同操作:
cpp复制void print(int i) { cout << "整数: " << i << endl; }
void print(double f) { cout << "浮点数: " << f << endl; }
void print(string s) { cout << "字符串: " << s << endl; }
默认参数则让函数调用更灵活:
cpp复制void setup(int widt
