C++学习笔记1——C到C++1
1、bool 类型
表示真(true)或假(false),0或1,大小为一个字节
bool vale;//定义了一个bool 类型的变量vale 这个vale要么是真要么是假
vale=true;//给赋值为真 或者 1
2、& 引用 取别名 必须要初始化 大小占4个字节
取别名,就是对一个变量取别名,对一个变量名取别名
int a=32;
int &b=a;//那么这个b就是a的别名,可以直接使用b当作这个int类型的变量a来使用
b=12;//那么这个a的值就会被改成12
引用参数,可以达到在函数内部所操作的数据就是函数外部的数据(相当于地址传递)
引用有大小占4字节,对于传参来说,如果类型比较大,是不是除了指针之外,多了一种选择方式
指针和引用对于效率来说,没有太多区别
指针和引用的区别:
1、指针是一个有内存的实体,引用只是一个外号
2、引用是常量,常量必须初始化
3、指针可以赋空值
4、指针的内存唯一的,引用不唯一
3、内联函数
通过内存膨胀来减少函数的跳转,空间换时间 函数是:时间换空间
在函数前面加上inline就是内联函数
inline void fun(){}
如果出现函数体的代码过长,如果有循环,不建议使用内联
什么使用内联:简单的赋值语句,简单的返回语句(函数体少,使用频率高)
4、函数重载
构成函数重载 1、函数名一致 2、参数列表位置不同 构成函数重载
参数列表位置不同:对应位置不同,参数个数不同,参数类型不同,和返回值不同没有关系
int arr(int a,int b){return a+b;}
void arr(double a,double b){printf("%lf",a+b)}
这个arr函数构成函数重载
使用重载函数的时候要特别注释类型转换导致二义性的问题
void a(int a){}
void a(float){}
这个函数a构成函数重载如果调用的是a(1.23);这样就会有二义性的问题
vs会帮助我们把基本数据类型的大类型强制转为小类型
5、函数的缺省参数(也就是形参有初始化的值)
1、参数的缺省只能由后往前缺省,依次缺省,不能由前往后
void fun(int a,int b=2,int c=3);//可以这样写
void fun(int a,int b=2,int c);//不可以可以这样写
2、参数的缺省,在只有定义的情况下可以直接写在定义上,如果有声明,只要在声明中缺省,定义不需要
定义:void fun(int a,int b,int c);
声明:void fun(int a,int b=2,int c=3);
3、缺省参数的过程,如果对应位置不给出实参,就直接用缺省的参数,如果给出实参,会用实参替换掉缺省的参数
4、参数的缺省如果和重载混合一起使用,一定要注意因为缺省参数导致的二义性
void fun(int a,int b=10,int c=20){} 这样从第2个形参开始有默认参数了后面的参数就必须要有默认参数
void fun(int a){} 如果上下有这么两个函数就会在调用(<fun(1)>)下面这个函数的时候出现二义性
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!