以下内容为,在学校上课时的课堂总结,偶尔我也会扩展一些内容
内容仅供参考,欢迎大佬的指正
简单的C++程序
#include <iostream>
using namespace std;
int main()
{
int x=0;
int y = 0;
cout << "请输入x,y的值"<<endl;
cin >> x >> y;
int z = x + y;
cout << "x+y=" << z << endl;
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/9d78230a879819423ed22a7683431206.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8d026a936348550e8638c9db86f5a774.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c263347fac94bbd497bc9dcaf953af8c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/48e6c7dc6f1bf2de9e9d8b18116769b2.png)
C++与C语言的输入输出流的比较
![](https://i-blog.csdnimg.cn/blog_migrate/db740c7a8475f887cb1532bcca06242b.png)
自定义类型可直接作为类型名
![](https://i-blog.csdnimg.cn/blog_migrate/cc4be0693b5e4a497a761c7c03e17fe3.png)
在C++中我们利用结构体创建结构体变量时,我们可以直接用结构体的标签创建
在C中我们创建结构体变量,我们不可以利用结构体标签创建变量,我们创建变量还需要,加上struct
![](https://i-blog.csdnimg.cn/blog_migrate/d8ad725ece035cf3ff5ee3b6ab2127b0.png)
const修饰符
在C中我们常常用#define来定义常量,但是#define没有计算功能,定义的常变量存在不安全性
![](https://i-blog.csdnimg.cn/blog_migrate/49166ebd499fc364ce5e984cd26e7285.png)
比如上方的程序我们的define不存在计算的功能
M*2执行的是20+10*2=40
在我们C++中引入const修饰符修饰常变量来解决这个问题
![](https://i-blog.csdnimg.cn/blog_migrate/ae9356c1e17fc1cb64e02ea409437509.png)
const 与指针一起使用
指向常量的指针
const char*p="hello";
使用了const修饰,p里面的内容不可以改变,这种指针叫做指向常量的指针
![](https://i-blog.csdnimg.cn/blog_migrate/b0ed0267362d6416c5f47d70a5ff27d0.png)
上面图片的操作是不允许的
那么指向常量的指针可以进行什么操作呢
![](https://i-blog.csdnimg.cn/blog_migrate/6de74ee541eae3681b022f6a3c02fc08.png)
指向常量的指针,我们可以修改指针指向的地址,即改变里面全部的内容
常指针
char* const p="hello";
常指针里面的内容可以修改,但是指针的地址不可以改变,即我们不能改变指针指向的地址
我们来看看具体的操作
![](https://i-blog.csdnimg.cn/blog_migrate/891d8d9ea9e4bd458a1a5c8b8b66c94c.png)
常指针可以改变里面的值
![](https://i-blog.csdnimg.cn/blog_migrate/c3e240c52277a18ee2bd8119603e5ffd.png)
常指针不可以修改指针的地址
指向常量的常指针
const char* const p="hello";
指向常量的常指针,里面的元素不能修改,而已指针的地址也不可以修改
![](https://i-blog.csdnimg.cn/blog_migrate/bf7e987c182904540b98df37cb3debc9.png)
内联函数
在函数说明前冠以关键字“inline”,改函数就被声明为内联函数,又称内置函数。每当程序中出现对该函数1的调用时,C++编译器使用函数体中的代码插入到该函数的语句处,同时用实参取代形参,以便程序运行不再进行函数调用。
为什么要引入内联函数?这主要是为了消除函数调用时的系统开销,以提高运行速度。
我们所以函数都使用内联函数对吗?这个想法是不正确的,内联函数只能用于简单的函数(一般1~5行程序),如果函数体有for switch语句一般不能使用内联函数,如果一个复杂函数定义为内联函数,反而史程序的代码增大,增加开销。
我们一般将,短小的语句,又频繁使用的语句定义为内联函数
![](https://i-blog.csdnimg.cn/blog_migrate/3d74005a789f319b127a7853c265aeb8.png)
带默认参数的函数
![](https://i-blog.csdnimg.cn/blog_migrate/d1ebd6c7ef5ab9fe4431eb24c8b291fd.png)
带默认参数函数的优势,我们实参和形参的类型数量可以不相等,比如上面代码,我们传10,20也能成功运行
![](https://i-blog.csdnimg.cn/blog_migrate/c01413b8efe4b949f8e8e38dd0cd00c3.png)
如果函数的形参不带默认参数则不能运行
注意:我们函数形参带默认值,后面的类型也需要带默认值,不然很容易报错
我们进行函数声明的时候需要将默认值带上