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