从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++源代码

目录
相关文章
|
11月前
|
NoSQL Linux 程序员
Linux | 调试器GDB的详细教程【纯命令行调试】-1
Linux | 调试器GDB的详细教程【纯命令行调试】
348 0
|
11月前
|
存储 小程序 JavaScript
微信小程序(十二)小程序页面跳转及传参
Bindtap传参的问题解决了,那么跳页的时候,也需要传递参数,毕竟,从文章列表页,跳到文章详情页,是需要文章id的。 小程序这部分到是提供了不少的方法,大概整理了一下。
246 0
|
11月前
|
存储 算法 Java
史上最全的Java容器集合之基础数据结构(手撕链表)
史上最全的Java容器集合之基础数据结构(手撕链表)
111 0
|
11月前
|
JSON 前端开发 Java
SpringMVC常见组件之HandlerExceptionResolver分析-1
SpringMVC常见组件之HandlerExceptionResolver分析-1
177 0
|
弹性计算 网络安全 数据安全/隐私保护
如何将本地文件上传至阿里云ECS中
利用WinSCP与云服务器ECS实现文件互通
17363 1
|
6月前
|
SQL JSON 数据库
在线JSON转SQL工具
JSON文件中的数据或者JSON对象转换为SQL插入语句,方便用户将数据导入到数据库中。
1086 2
|
11月前
|
XML 网络协议 安全
主动扫描-Nmap-端口、系统、服务扫描
主动扫描-Nmap-端口、系统、服务扫描
243 0
|
11月前
|
缓存 Cloud Native 调度
Fluid支持分层数据缓存本地性调度(Tiered Locality Scheduling)
依赖容器化带来的高效部署、敏捷迭代,以及云计算在资源成本和弹性扩展方面的天然优势,以 Kubernetes 为代表的云原生编排框架吸引着越来越多的 AI 与大数据应用在其上部署和运行。但是数据密集型应用计算框架的设计理念和云原生灵活的应用编排的分歧,导致了数据访问和计算瓶颈。 CNCF开源项目Fluid作为 AI 与大数据云原生应用提供一层高效便捷的数据抽象,将数据从存储抽象出来,针对具体的场景(比如大模型),加速计算访问数据。
891 0
|
11月前
|
算法 测试技术 C#
C++二分查找算法:有序矩阵中的第 k 个最小数组和(二)
C++二分查找算法:有序矩阵中的第 k 个最小数组和
|
关系型数据库 数据库 PostgreSQL
把 PostgreSQL 当做对象数据库使用
本文阐述了如何把 PostgreSQL 当做一个对象数据库使用,及其好处。
2083 0