在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一.函数默认参数 1.缺省参数:就是在声明函数的某个参数的时候 给他一个默认值 1 #include<iostream> 2 using namespace std; 3 4 void Show(int a = 1,int b = 2,int c = 3) 5 { 6 cout << a << endl; 7 cout << b << endl; 8 cout << c << endl; 9 } 10 11 int main() 12 { 13 Show(); 14 return 0; 15 } 2.函数的参数可以存默认值 在调用的时候就可以不用去传了 但也可以传参 传了就把默认值覆盖 传几个都行 但是第一个不传不可以 因为这是有一种压栈的过程的 后面不传可以 但是在声明函数的时候 前面的默认值可以不给 1 #include<iostream> 2 using namespace std; 3 4 void Show(int a,int b = 2,int c = 3) 5 { 6 cout << a << endl; 7 cout << b << endl; 8 cout << c << endl; 9 } 10 11 int main() 12 { 13 Show(100); 14 return 0; 15 } 3.总结: 默认参数值一定在右边 中间是不可以空缺的 默认参数一定要在声明函数中写 二.函数重载 在同一个作用域中 函数名一样 参数列表不同(即参数个数或类型不同) 根据调用的什么类型的参数 给几个 就会去执行对应的函数 1 #include<iostream> 2 using namespace std; 3 4 void Area(int r) 5 { 6 cout << r*r*3.14 << endl; 7 } 8 9 void Area(int l,int h) 10 { 11 cout << l*h <<endl; 12 } 13 14 int main() 15 { 16 Area(1); 17 Area(1,2); 18 return 0; 19 } 三.引用 1.定义:是C++语言的一个特殊的数据类型的描述 可以理解为“起小名” 用于在程序的不同部分使用两个以上的变量名指定同一地址 这样就使对其中任何一个变量操作都是对同一地址单元进行的 在这种两个以上变量名的关系上 被声明为引用类型的变量名就是实际变量名的别名 注意:定义引用 一定要初始化!!! 2.引用运算符:& 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int a = 100; 6 int& k = a; 7 k = 200; 8 cout << a << endl; 9 10 return 0; 11 } 对引用操作 就是对引用的变量进行操作 引用不是值 不占存储空间 声明引用的时候 目标的存储状态不会改变 一旦引用被初始化 就不能再重新引用其他空间 3.指针和引用的区别: ①引用定义了就要初始化 但是指针不用 ②引用初始化后不能再重新引用其他空间 但是指针可以动 ③引用没有空的 但是有空指针 引用一定要保证:引用的是一个合法的存储单元 4.引用的优点:空间 效率 安全 5.在使用的时候 如何选择指针和引用: ①如果要装地址 或者有地址偏移的操作 那就用指针(new) ②如果要对单一的空间进行操作 引用就可以 6.“引用”通常作为函数的参数 那么传参的方式可以分为以下三种: ①值传递: 1 #include<iostream> 2 using namespace std; 3 4 void Change(int x,int y) 5 { 6 int temp = x; 7 x = y; 8 y = temp; 9 } 10 11 int main() 12 { 13 int a = 100; 14 int b = 200; 15 Change(a,b); 16 17 cout << a << endl; 18 cout << b << endl; 19 20 return 0; 21 } 交换两数 交换x和y 执行结束空间被回收 a和b没有被交换 ②地址传递: 1 #include<iostream> 2 using namespace std; 3 4 void Change(int* x,int* y) 5 { 6 int temp = *x; 7 *x = *y; 8 *y = temp; 9 } 10 11 int main() 12 { 13 int a = 100; 14 int b = 200; 15 Change(&a,&b); 16 17 cout << a << endl; 18 cout << b << endl; 19 20 return 0; 21 } 间接操作所指向的两块空间 a和b交换 ③引用传递: 1 #include<iostream> 2 using namespace std; 3 4 void Change(int& x,int& y) 5 { 6 int temp = x; 7 x = y; 8 y = temp; 9 } 10 11 int main() 12 { 13 int a = 100; 14 int b = 200; 15 Change(a,b); 16 17 cout << a << endl; 18 cout << b << endl; 19 20 return 0; 21 } 对x和y操作就是对a和b进行操作 a和b成功交换 (PS:码到这里真的觉得引用真的好方便阿~) 7.总结:空间变量是看生命周期去选的 要控制生命周期就要选堆区 可以看是否要修改传入的内容 不改就用值传递 改就用地址或者引用 接着看传进来的是不是new的 是不是地址 是就用指针 不是地址就用引用就可以了 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论