继续小菜鸡的C++学习之旅
编程中的函数与数学中的函数不一样,编程中函数的编些要求功能独立且在相同的结果可以重复。
我们可以将程序想象成一条食品生产线,就拿我喜欢吃的重庆小面来说吧。
而在我的理解中,程序就是函数的集合。函数可以是侧重计算、具有返回值的过程,比如,生产个包装袋啊,把辣椒装入袋子里啊,也可以是没有返回值,仅仅是程序这台机器中用于传输的一个纽带。
在C++中,main函数即便是初学者也一定见过,它是启动函数,即生产线的开关,它控制总电源,能够给各个函数输送必需的能源和原料,而其他的函数也有可能调用别的函数,调用中通过计算获得结果而结束(返回值和结果不是同一个概念),返回调用处,最终又回到了main函数。
1. 函数声明
要使函数能够被调用,要先声明函数的调用方式,就是明确函数名是什么,函数返回什么类型的值,函数参数有哪些,有啥数据类型等。即先告诉电脑(生产线)我们有这种方法可以将原料变成某种中间产品。
其格式为:
type funcName(type1 para1,type2 para2,type3 para3,…)
格式中的type表示返回类型,funcName表示函数名字,括号中的每个typei和parai的组合用于描述参数的类型和名字。参数描述数据的使用方式,若干个参数构成参数序列,描述调用函数时所需传递的数据。
就像是
int miaoMiao(int meow);
上句声明了一个函数,名字是miaoMiao,输入和结果都是整型。注意的是,最后需分号。
2. 函数定义
格式
函数的计算方法是由函数定义所规定的,所以定义的形式包含了上面提到的声明部分和定义部分。
其格式为:
type funcName(type1 para1,type2 para2,type3 para3,…)
{
//...
}
其实也就是下面加了个大括号,大括号里的东西就是定义部分,是函数所述方法的说明。
int miaoMiao(int meow)
{
return meow+meow*meow;
}
在函数的定义中,对函数重新做了声明,这个声明要求与独立的函数声明一致。即函数返回类型相同,函数参数个数相同,各个参数的类型对应相同,函数名也相同。函数定义如果与函数声明不一致,则声明的函数与定义的函数就是两条平行线。
返回时需要用到return语句,因为函数声明了返回类型是int,所以应该在return后面加一个int类型的值或表达式。
不过注意上述两个示例,找不同就会发现下面在函数声明后,没有分号,这是因为作为函数的定义(而非声明),声明部分和定义部分是不能分开的。
在函数定义的时候需要注意:1. 定义部分的花括号后面没有分号,2. 函数定义不是语句,所以不能把函数定义放在其他函数的定义中。(你也不能把一台机器当成另外一台机器的原料对不对hhh)
就像是:
int main(){
int miaoMiao(int meow)
{
return meow+meow*meow;
}
cout<<miaoMiao(2)<<"\n";
}