既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
int main()
{
//特点:自动识别类型
int i;
double d;
// >> 流提取:提取数据放到i、d中 in代表提取、c代表控制台
cin >> i >> d;//
// << 流插入:提取到的数据插入到控制台里
cout << i << endl;
//cout << d << '\n'; //endl 代表换行 等价与“\n”
cout << d << endl;
//关于精度的c++太麻烦,c++可以兼任c的,所以还是可以用c的
return 0;
}
结果如下:👇🏻
究竟是使用C还是cpp的输入输出方式,取决于哪个更加方便❓
🔥cout和cin也可以控制输出数据的精度、按照格式去输出进制格式等,但是实现起来比较复杂,主要是因为C++兼容C语法,这些用的又不是很多,就不展开学习了。后续如果有需要,再配合文档学习一下。
- 实际上cout和cin分别是ostream和istream类型的对象,
>>
和<<
也涉及运算符重载等知识,这些知识我们我们后续才会学习,所以我们这里只是简单学习他们的使用。后面我们还有有一个章节更深入的学习IO流用法及原理。
注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用
<iostream>+std
的方式。
🌍 4.缺省参数(备胎)
🌈4.1 缺省参数概念
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。(省流:没有实参就取缺省值)
#include <iostream>
using namespace std;
void Func(int a = 0)
{
cout<<a<<endl;
}
int main()
{
Func(); // 没有传参时,使用参数的默认值
Func(10); // 传参时,使用指定的实参
return 0;
}
🌈4.2 缺省参数分类
1.💦 全缺省参数
//全缺省参数
void TestFunc(int a = 10, int b = 20, int c = 30)
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl << endl;
}
int main()
{
TestFunc();// 没有传参时,使用参数的默认值
TestFunc(1);//从左往右给,传给第1个参数,第2、3个参数缺省用默认值
TestFunc(1, 2); // 传参时,使用前两个指定的实参
TestFunc(1, 2, 3); //都使用指定实参
//TestFunc(,,1);这样不可以,也没有为什么,因为语法是规定死的,我们只能学习,不能更改人家规定
return 0;
}
- 注意传值默认
从左向右依次给
,很多人会好奇为什么要这样,但是要注意的是我们是在学习别人的语法,在用别人规定好的东西,我们当然可以吐槽什么的,但是如果不想用这种语法,完全可以去开发一种语言比如X语言?
- 💦半缺省参数
- 半缺省参数必须
从右往左依次
来给出,不能间隔着给,看下面的例子
//半缺省
void TestFunc(int a, int b = 10, int c = 20) //必须从右往左连续缺省,不能间隔
{
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "c = " << c << endl <<endl;
}
int main()
{
//要传的放在前边,爱传不传的放在后边
TestFunc(1);//这第一个参数必须传
TestFunc(1, 2);
TestFunc(1, 2, 3);
//不能这样TestFun(,,1) 原因很简单,因为这不叫C++
return 0;
}
3.💦 缺省参数不能在函数声明和定义中同时出现,推荐放在声明里🔥 声明是大哥(好比不知道是妈妈当家说话还是爸爸当家说话一样哈哈哈)🔥
🍭举例:
#include<stdio.h>
#include<stdlib.h>
struct Stack
{
int\* a;
int top;
int capacity;
};
//部分缺省
void StackInit(struct Stack\* ps,int capacity = 4)
{
ps->a = (int\*)malloc(sizeof(int)\*capacity);
ps->top = 0;
ps->capacity = capacity;
}
int main()
{
struct Stack s