在未来的几周内,我会持续更新我的C++学习成果,希望可以帮助到你。
> Bool类型
bool类型是C++特有的类型,它只占一个字节大小,只存放真假,例如:(1或0,true或false)
他也可以是一个表达式(0>1代表假,10>7代表真)
#include <iostream>
using namespace std;
int main()
{
bool arr = true;
arr = false;
arr = 1;
arr = 0;
return 0;
}
inline内联函数
定义和好处:内联函数是通过内存膨胀减少函数的跳转时间,以空间换时间,因为它不会入栈,所以时间上会更快一些。
使用方法:直接在函数的前面加上关键字 inline
#include <iostream>
using namespace std;
inline int Add(int x, int y)
{
return x + y;
}
int main()
{
int a = 10;
int b = 20;
int ret = Add(a, b);
return 0;
}
使用建议:
当一个函数的函数体少,简单,短并且使用的频率高,这是建议使用内联函数。
反之,当一个函数的函数体多,复杂,长的时候不建议使用inline函数,这不会让函数的性能提高。
引用&
定义:说白了&(记住和取址符&区别)就是给一个变量或对象起一个别名
使用方法:
真名类型 &别名 = 真名
#include <iostream>
using namespace std;
int main()
{
int studentnumber = 100;
int &sn = studentnumber;
sn = 200;
cin >> sn;
cout << sn << endl;
return 0;
}
当你去完这个变量的真名后,就可以将这个别名当做真名的变量使用。
#include <iostream>
using namespace std;
void fun(int &n)
{
n = 300;
}
int main()
{
int studentnumber = 100;
int &sn = studentnumber;
fun(sn);
cout << sn << endl;
return 0;
}
当把这个别名在另一个函数中被使用并改变了原来的值,那么这个变量的值就真正的别改变了,有一点类似于指针传参。
指针和引用的区别:
指针其实还是放在一个指针变量里,值这个变量需要开辟空间,也可以改变指向,但是&就是原来变量本身只是换一个叫法,它不用开辟空间(俩个变量的地址没变,如下),也不能指代其他的变量
函数重载和参数缺省
**
函数重载:
**
1.同名函数
2.函数的参数列表不同(1.参数不同 2.参数对应类型不同)至少满足一点
**
口诀
:**同名不同参,与返回值类型无关
void fun1 (int a)
{}
void fun1(int a, int b, int c)
{}
int fun2(int a, char b)
{}
int fun2(char a, int b)
{}
注意:传参的类型要匹配,3.14默认是double类型,但是函数参数是int ,float类型,所以没有适合的函数匹配,就会报错。
函数参数的缺省
定义:就是函数参数中有默认值。
注意:缺省值后就不能有正常的没有默认值的变量
int fun(int a, int b =1, int c =10)
{}
int fun(int a, int b = 1, int c)
{}//error
2.函数的(默认)缺省参数,传过去,没有用到就默认使用默认值,否则使用函数传过来的值
3.有缺省参数的函数,定义时不用有缺省参数,只要在声明时有缺省参数即可。
int Add(int x, int y = 1);
int main()
{
int ret = Add(1);
cout << ret << endl;
return 0;
}
int Add(int x, int y)
{
return x + y;
}
2021-1-27 zhy