C++详解(1)-(Bool,内联函数,引用,函数重载,参数缺省)

在这里插入图片描述
在未来的几周内,我会持续更新我的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

已标记关键词 清除标记
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质? 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹?   那么C++就是你个人能力提升,职业之路进阶的不二之选。 【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署; 2.吊打一切关于C++的笔试面试题; 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块 基础篇 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 进阶篇 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 提升篇: 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页