C++基础知识
2015-09-12 20:22 Fururur 阅读(382) 评论(0) 编辑 收藏 举报基础知识
- &&和||具有“短路”特性,特别是在第二个操作数有++或--时要注意。
- 显式类型转换
- (类型说明符)表达式 //C风格的
- 类型说明符(表达式) //cpp风格的
const_cast<>()
static_cast<>()
//基本类型都可用这种来强转reinterpret_cast<>()
dynamic_cast<>()
- 内联函数不是在函数调用时发生转移,而是在编译时将函数嵌入在每一个调用处。语法:函数定义前用inline修饰。
- 带默认形参值的函数。
- 默认值的形参在形参列表的最后。
- 相同的作用域内,不允许在同一个函数的多个声明中对统一参数的默认值重复定义。
void foo(int a = 4,int b = 3);
void foo(int a /* = 4 /,int b / = 3 */)
{
}
5. 函数重载 。具有相同函数名,但是**形参类型和个数不同**。
6. 函数递归
递归函数即自调用函数,在函数体内部直接或间接地自己调用自己,即函数的嵌套调用是函数本身。
```cpp
unsigned fac(unsigned n)
{
unsigned f;
if(n == 0)
f = 1;
else
f = fac(n - 1) * n;
return f;
}
要注意递归函数的调用方式。分为两部分,递推和回归。
- 递推。不断拆解问题的过程,从未知到已知,最终到达已知的条件结束递推。
- 回归。从已知出发,逐一求值回归,达到递推开始处,结束回归阶段,完成递归调用。
特别要注意有IO操作的递归函数。 比如说利用递归来输出数组中的每个元素,结果一定是倒序的。
- 对象生存期
- 静态生存期(static)。与程序运行期相同。基本类型,默认初值为0。在局部作用域中只初始化一次。
- 动态生存期。与块同期。
练习:
#include <iostream>
using namespace std;
int i = 1;
void other()
{
static int a = 2;
static int b;
int c = 10;
a += 2;
i += 32;
c += 5;
cout<<"----other----"<<endl;
cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
}
int int main(int argc, char const *argv[])
{
static int a;
int b = -10;
int c = 0;
cout<<"----main----"<<endl;
cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
c += 8;
other();
cout<<"----other----"<<endl;
cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
i += 10;
other();
cout<<"----other----"<<endl;
cout<<"i:"<<i<<"a:"<<a<<"b:"<<b<<"c:"<<c<<endl;
return 0;
}
结果:
----main----
1 0 -10 0
----other----
33 4 0 15
----main----
33 0 -10 8
----other----
75 6 4 15
- 字符串
- C字符串(const char*)
- C++ string类

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Fururur(包含链接),如您有任何疑问或者授权方面的协商,请给我留言。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?