笔者需要参与一项slam项目的开发,经年不用C++知识已经统统上交给了国家,尤其是现在用python炼丹调参不亦乐乎,怕是一时都改不过来习惯。
故决定速刷C++primer(六)一书,把忘掉的东西捡起来,希望不要和python搞混。
(只是熟悉语法的话看菜鸟教程查表更快,但是为了摸鱼汇报进度还是过一下书吧)
Hello World
//hello world
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
void weightyou();
int main()
{
int age;
cout << "Hello World!" << endl;
weightyou();
return 0;
}
int kg2g(float kg)
{return kg*1000;}
void weightyou()
{
float weight;
cout << "Please input your weight:_____Kg\b\b\b\b\b\b\b";
cin >> weight;
cout << "Your weight:" << kg2g(weight) << "g\n";
}
一个典型的cpp包含以下几个要素:
- 注释,由//标识
- 预处理器编译指令,引入库,#include<>
- 编译指令using namespace std
- 函数,int main( //参数声明 ){ //函数体 }
- return值,如果函数声明为void类型则不需要return
换行符:cout << "xxx" <<endl或者cout << "xxx\n",显然,输出字符串时用\n方便,输出变量时用endl方便。
变量声明:变量及函数均需要声明类型,如void、char、int、float、double等,系统将分配内存空间。
处理数据
变量
变量名命名规则:字母数字下划线组合,区分大小写,且首位不能是数字。
字节与位:1byte = 8bit,bit即位,表示一个0/1的可能存在。另常见的1kB = 1024byte…
初始化:int x = 12 或int x(12)或int x = {12}或int x{12}
转义编码:对特殊符号用反斜杠转义\
| \t | \n | \b |
|---|---|---|
| 制表符 | 换行符 | 退格符 |
const标识:const int Fuck = 12设定为常量,一般首字母大写作为标记
整型
类型有:char、short、int、long、long long
- 要注意char也是整型的一种,一般表示字符串。
- 其他每种均有unsigned和signed区别正负,无符号可以扩展表示区域。溢出时从另一端步进。
- 16位int表示区域即-32768~32767,因为从0开始编码,所以正数“看起来”少一位。如果无符号则表示区域为0-65535。
- 进制转换:用
cout<<oct控制符转换,同理cout<<hex和cout<<dec - 一般默认为int型,除非加后缀如
347.6F、296UL等
浮点型
类型有float、double、long double
- 科学计数法:
+3.56e-2表示0.0356,注意前后两个正负号的区别,一个是数值正负,一个是小数点左右移动的方向。 - 速度慢,精度低
算术符号
| +、 - | * 、/ 、% |
|---|---|
| 优先级低 | %求模只能整型,除法可重载自适应 |
除此以外还有组合赋值及递增操作。
| += | -= | ++,- - |
|---|---|---|
| *= | /= | %= |

void BMI()
{
const int f2i = 12;
const float k2b = 2.2;
const float i2m = 0.0254;
int foot_y,inch_y;
float pound_y;
cout << "input your height:__foot\b\b\b\b\b\b";
cin >> foot_y;
cout << "input your height:__inch\b\b\b\b\b\b";
cin >> inch_y;
cout << "input your weight:___pound\b\b\b\b\b\b\b\b";
cin >> pound_y;
float height_y = foot_y * f2i + inch_y;
height_y *= i2m;
float weight_y = pound_y / 2.2;
float BMI_y = weight_y / (height_y*height_y);
cout << "BMI指数为:" << BMI_y;
}
摘取一道课后练习。
相关练习均已上传github。
C++ Primer速成指南
本文分享了作者在参与SLAM项目开发前,通过速刷C++ Primer第六版书籍,重新掌握C++语法的过程。文章详细介绍了C++的注释、预处理器指令、函数、变量声明、数据类型、初始化、算术运算符等内容,并通过实例代码演示了如何使用C++进行基本的数据处理。

被折叠的 条评论
为什么被折叠?



