
1 概述作用将一段经常使用的代码进行封装起来减少重复代码。一个较大的程序一般分为若干个程序块每个模块实现特定的功能。2 函数的定义及调用函数的定义一般主要有5个步骤:1、返回值类型一个函数可以返回一个值需要知道这个值的类型。2、函数名给函数起个名字。3、参数表列使用该函数时传入的数据。4、函数体语句花括号内的代码函数内需要执行的语句。5、return 表达式和返回值类型挂钩函数执行完后返回相应的数据。定义语法123456返回值类型 函数名(参数列表){函数体语句;return表达式;}调用语法1函数名(参数)示例1234567891011121314151617181920212223#includeiostreamusingnamespacestd;//返回值类型 函数名 (参数列表){ 函数体语句 ; return表达式;}//定义一个两整型数相加的函数intadd(intnum1,intnum2)//num1和num2并没有真实数据只是一个形式上的参数简称形参{intsum num1 num2;returnsum;}intmain(){//main函数中调用add函数inta 3, b 4;//函数调用语法函数名称(参数)intc add(a, b);//a和b是真实的数据称为实际参数简称实参cout c endl;system(pause);return0;}3 值传递所谓值传递就是函数调用时实参将数值传入给形参。值传递时如果形参发生任何改变并不会影响实参。12345678910111213141516171819202122#includeiostreamusingnamespacestd;//定义一个交换数字的函数//因为函数没有返回值所以可以定义函数类型为void-无类型。voidswap(intnum1,intnum2){cout 交换前 num1 num2 endl;inttemp num1;num1 num2;num2 temp;cout 交换后 num1 num2 endl;}intmain(){inta 10, b 20;swap(a, b);//形参的改变并不影响实参本身cout a a \nb b endl;system(pause);return0;}值传递实际上是为形参开辟一块新的内存地址将实参的值传递给形参的内存中对形参进行运算所以并不涉及到实参的改变。4 函数的常见形式常见的函数样式有4种无参无返有参无返无参有返有参有返示例12345678910111213141516171819202122232425262728293031323334#includeiostreamusingnamespacestd;//1.无参无返voidtest01(){cout 无参无返 endl;}//2.有参无返voidtest02(intnum1,intnum2){cout 有参无返 num1 num2 endl;}//3.无参有返inttest03(){cout 无参有返 ;return1000;}//4.有参有返inttest04(intnum){cout 有参有返 ;returnnum;}intmain(){test01();test02(100, 200);cout 返回值为 test03() endl;cout 返回值为 test04(100) endl;system(pause);return0;}5 函数的声明作用告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。当自己创建的函数位于main函数下方的时候编译器会先运行main函数从而找不到我们定义的函数而报错所以需要函数声明这样我们的函数定义就可以放在main函数的下方了。函数的声明可以多次但是函数的定义只能有一次。语法1数据类型 函数名(参数列表)示例1234567891011121314151617181920#includeiostreamusingnamespacestd;//函数的声明intmaxtest(inta,intb);intmain(){//int maxtest(int a, int b); 写这里也可以inta 10;intb 20;cout maxtest(a, b) endl;system(pause);return0;}//定义函数intmaxtest(inta,intb){returna b ? a : b;}6 函数的分文件编写作用:让代码结构更加清晰作用让代码结构更加清晰函数分文件编写一般有4个步骤创建后缀名为.h的头文件创建后缀名为.cpp的源文件在头文件中写函数的声明在源文件中写函数的定义-----注意下面的这个例子使用了swap的函数名而上面源文件中的函数名已经有了swap一个项目里不能对同一函数名多次定义所以可以手动改一下上面值传递.cpp中的的swap函数名随便换一个其他的就行。1.2.3.123#includeiostreamusingnamespacestd;voidswap(inta,intb);4.123456789#includeswap.hvoidswap(inta,intb){inttemp a;a b;b temp;cout a a endl;cout b b endl;}1234567891011#includeiostream#includeswap.husingnamespacestd;intmain(){inta 10, b 20;swap(a, b);system(pause);return0;}总结本篇文章就到这里了希望能够给你带来帮助