C++基础知识
基础知识
- &&和||具有“短路”特性,特别是在第二个操作数有++或--时要注意。
- 显式类型转换
- (类型说明符)表达式 //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类
C++基础知识的更多相关文章
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
随机推荐
- HTML 上传图片实用小技巧
最近写的项目需要用的上传图片的功能但是浏览器自带的按钮样式实在是不忍直视,肯定要进行修改,网上也有很多方法(自己查....),我这里用了个取巧的方法:就是函数的间接调用 在点击btn的时候让它执行了图 ...
- 前端开发神器sublime Text
实用的sublime插件集合 – sublime必备插件 前言 入前端领域开始,就学着使用sublime,一直用起来很顺手,速度是我最欣赏的,快的没有编辑器可以匹敌.还是废话不多扯,入正题.好多有多少 ...
- tomcat:域名指向项目名
把项目部署到tomcat目录webapps后,使用域名访问的时候域名后面需要加上项目名称,如果想直接输入域名就可以访问项目呢?看了下tomcat官方文档,我修改了tomcat安装目录下conf/ser ...
- stl文件格式解析代码--java版
代码是参考three.js中的stlLoader.js写的. 需要注意的地方,java中byte取值-128~127 package test_stl.test_entry; import java. ...
- C++大会感悟
写在前面: 我是一名学生,在北邮读研,也是跨专业学的计算机,个人对服务器端编程感兴趣,平时主用c/c++,所以逮到这次机会就参加了这次大会. 先附几张合影: 正文: 这次参加c++大会也算是我最认真的 ...
- 软件工程(QLGY2015)博客点评总结
目录 第一次作业(2015.5.9) 第二次作业(2015.5.21) 第三次作业(2015.6.11) 2015上半年软工助教总结 第一次作业(2015.5.9) 存在主要问题 1)书写这种练习博客 ...
- 浅谈算法和数据结构: 十 平衡查找树之B树
前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种 ...
- 搭建Cordova开发环境
Cordova是什么 Apache Cordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头.加速计.它可以与UI框架(如jQuery Mobile ...
- Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则
<Windows Azure Platform 系列文章目录> 注意:如果Azure面对的客户只是企业级客户,企业级客户使用NAT设备访问Internet的话,因为多个客户端使用相同的So ...
- WCF服务创建与抛出强类型SOAP Fault
原创地址:http://www.cnblogs.com/jfzhu/p/4060666.html 转载请注明出处 前面的文章<WCF服务的异常消息>中介绍过,如果WCF Service发生 ...