自定义函数的目的 :
将代码封装起来,实现快速重复使用。
函数定义的步骤:
1: 函数类型 (比如 int ,float,void(无类型,当不需要返回值时使用)
2 :函数名
3 : 参数列表 (形参)
4 :函数体语句(函数表达式)
5:return 表达式;
1 返回值类型 函数名 (参数列表) 2 { 3 4 函数体语句 5 6 return表达式 7 8 }
- 返回值类型 :一个函数可以返回一个值。在函数定义中
- 函数名:给函数起个名称
- 参数列表:使用该函数时,传入的数据
- 函数体语句:花括号内的代码,函数内需要执行的语句
- return表达式: 和返回值类型挂钩,函数执行完后,返回相应的数据
需要返回值函数举例 :
1 #include <iostream> 2 using namespace std; 3 int a(int n1, int n2) 4 { 5 6 7 int sum = n1 + n2; 8 return sum; 9 /*假如不是sum,而是n1,或者其他的数(比如0)结果输出则会是n1或者其他的数,这个代表函数的输出值 */ 10 11 } 12 int main() 13 { 14 int n1 = 52; 15 int n2 = 25; 16 int b = a(n1, n2); 17 cout << b; 18 }
当返回 sum时结果 :
当返回 n1时结果:
不需要返回值函数举例 :
1 #include <iostream> 2 using namespace std; 3 void a(int n1, int n2) 4 { 5 int c = n1; 6 cout << "交换前n1为" << n1 << "," << "交换前n2为" << n2 << endl; 7 n1 = n2; 8 n2 = c; 9 cout << "交后n1为" << n1 << "," << "交换后前n2为" << n2 << endl; 11 } 12 int main() 13 { 14 int n1 = 52; 15 int n2 = 25; 16 a(n1, n2); 17 }//当没有返回值时函数会自动函数执行完后的n1,n2
总结:函数定义里小括号内称为形参,函数调用时传入的参数称为实参
值传递本质
用户输入实参传递给形参时,本质上是把实参赋值给形参,所以当函数内部进入函数体表达式运算使得形参发生改变时,实参不会发生改变。
函数的常见样式 :
无参无返 :
1 #include <iostream> 2 using namespace std; 3 void a() 4 { 5 cout << " this is a " << endl; 6 } 7 int main() 8 { 9 a(); 10 }
有参无返 :
1 #include <iostream> 2 using namespace std; 3 void a(int b) 4 { 5 cout << " this is b " << b << endl; 6 } 7 int main() 8 { 9 a(200); 10 }
无参有返 :
1 #include <iostream> 2 using namespace std; 3 int a() 4 { 5 cout << " 这是无参有返的" << endl; //可去掉,只是标识一下 6 return 10000; 7 } 8 int main() 9 { 10 int b = a(); 11 cout << "b = " << b << endl; 12 }
有参有返 :
1 #include <iostream> 2 using namespace std; 3 int a(int b ) 4 { 5 cout << " 这是有参有返的" << endl; 6 return b; 7 } 8 int main() 9 { 10 int c = a(65); 11 cout << "c = " << c << endl; 12 }
函数的声明与定义:
1 #include <iostream> 2 using namespace std; 3 int a(int b);//这是函数声明,是告诉系统有这个函数,不要报错,只能写在需要输入实参的函数前面,可以重复声明 4 int main() 5 { 6 int c = a(65); 7 cout << "c = " << c << endl; 8 } 9 int a(int b) 10 { 11 cout << " 这是有参有返的" << endl; 12 return b; 13 }//函数定义,定义函数执行的步骤与方式,函数定义可以放在任意的地方,即使这里也行,只能出现一次
同一函数的声明可以写多次,定义只能出现一次
函数的分文件编写:
意义:减少文件主体的代码量,方便阅读
步骤 1
在头文件中选择创建后缀为.h的新项目,然后在里面写函数声明 :
步骤二 :
创建后缀为 .cpp 的源文件然后在里面写函数定义
步骤三 :
在正式文件中引用:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了