从C到C++

简介: 从C到C++

1、输入输出库与名字空间

每次写代码先把这两个东西加上

<iostream>是一个库,叫输入输出库

我们后面使用的cin、cout都是iostream库中,std名字空间下的一个对象

使用名字空间是为了区分同名符号,避免同名歧义


非常的形象

2、输入输出流对象cin和cout

“<<”是流插入运算符

用法:std::cout<<要输出的内容;

“>>”是流提取运算符

用法:std::cin>>要输入的内容;

当我们在程序开头加上了using namespace std;

就可以省略掉std::直接这样写 cin>>要输入的内容; cout<<要输出的内容;


先看一个例子

#include <iostream>
using namespace std;
int main()
{
  int a, b;
  cin >> a >> b;
  cout << a << "+" << b << "=" << a + b;
  return 0;
}

可以看到没有任何问题

但是我们如果去掉using namespace std;  直接报错

加上std::又可以了,很显然我们直接在开头加using namespace std; 更方便简化后面写代码

OK,通过上面一个简单求两个数相加的例子 ,我们已经知道了cin、cout的用法

3、string字符串类

string类是C++的字符串类,提供(封装)了很多工具(成员方法)供使用

同样我们先看一个例子

#include <iostream>
using namespace std;
int main()
{
  string s = "ABCDE"; //定义一个字符串类变量s,值初始化为ABCDE
  s[2] = 'c'; //访问2这个位置的元素,将它变成小写的c,注意是从0开始,所以2对应第三个元素
  cout << s << endl;  //输出修改后的s
  cout << s.length() << endl; //输出字符串s的长度
  s.append("123"); //给字符串s追加内容“123”
  cout << s << endl; //输出追加后的s
  s.clear(); //将字符串s内容清空,变为空字符串
  cout << s; //输出清空后的s
}

点(“.”)表示调用对象的成员方法

用法:对象.函数()

比如 s.length()

变量(对象)s的一个工具(成员方法),length()是返回它的长度

endl就是换行,相当于'\n'

运行结果:

4、bool类型

取值只能为true或false

储存本质是单字节无符号整数1或0

(注意只要是非0即为true,输出也为1)

看例子

#include <iostream>
using namespace std;
int main()
{
  bool a = true;
  if (a) {
    cout << a;
  }
  return 0;
}

运行结果:

输出为1

常考的是逻辑运算

#include <iostream>
using namespace std;
int main()
{
  bool a = true, b = !a;
  if (a && b) {
    cout << "yes";
  }
  else {
    cout << "no";
  }
}

运行结果:

输出no

5、自增++自减--运算符(必考)

分两种

前自增自减(++a,--a):先自增自减,后执行表达式

后自增自减(a++,a--):先执行表达式,后自增自减

我们来看个例子就明白了

#include <iostream>
using namespace std;
int main()
{
  int a=1, b;
  b = a++;
  cout << a << endl << b;
}

这里是后自增,则会先执行表达式,将a的值赋给b,a再自增

运行结果:

输出a是2,b是1

#include <iostream>
using namespace std;
int main()
{
  int a=1, b;
  b = ++a;
  cout << a << endl << b;
}

这里则是前自增,a先自增为2,再赋值给b

运行结果:

可以看到输出a和b都为2

6、其他

C++兼容C语言,且是向下兼容,反过来就不对了

C++编译器能编译C语言和C++源代码

目录
相关文章
|
弹性计算 网络安全 数据安全/隐私保护
如何将本地文件上传至阿里云ECS中
利用WinSCP与云服务器ECS实现文件互通
17397 1
|
8月前
|
Linux C语言 SoC
设备树知识小全(二)
设备树知识小全(二)
144 0
|
8月前
|
SQL JSON 数据库
在线JSON转SQL工具
JSON文件中的数据或者JSON对象转换为SQL插入语句,方便用户将数据导入到数据库中。
1220 2
|
Java Linux 应用服务中间件
docker基础安装使用
docker基础安装使用
58 0
|
关系型数据库 数据库 PostgreSQL
把 PostgreSQL 当做对象数据库使用
本文阐述了如何把 PostgreSQL 当做一个对象数据库使用,及其好处。
2240 0
|
Java Windows
Java 打开文件的两种方式
import java.awt.Desktop; import java.io.File; import java.io.IOException; public class LnkDemo { public static void main(String[] arg...
1019 0
|
前端开发 定位技术 C++
3D激光SLAM:ALOAM---帧间里程计代码解读
A-LOAM的cpp有四个,其中 kittiHelper.cpp 的作用是将kitti数据集转为rosbag 剩下的三个是作为 slam 的 部分,分别是: - laserMappin.cpp ++++ 当前帧到地图的优化 - laserOdometry.cpp ++++ 帧间里程计 - scanRegistration.cpp ++++ 前端lidar点预处理及特征提取
3D激光SLAM:ALOAM---帧间里程计代码解读
|
Java 开发者 微服务
微服务架构演变过程之分布式架构|学习笔记
快速学习微服务架构演变过程之分布式架构
微服务架构演变过程之分布式架构|学习笔记
|
Shell 索引 Python
python 内置函数详解(2)
python 内置函数详解(2)
|
弹性计算 监控 负载均衡
ECS使用体验
在阿里云领取了一个服务器,分享一下使用体验