一个函数的原型语句就是其函数头的一个拷贝,当然要在最后加上语句接上结束符分号 。函数原型语句与函数头也有细微的差别,在函数原型语句中,其参数表中的每个参数允许只保留参数类型,而省略参数名 , 并且若使用参数名也允许与函数头中对应的参数名不同 。
全文如下:
一)、定义格式
类型名 函数名 ([参数表]) 函数体
类型名为系统或用户已定义的一种数据类型,它是函数执行过程中通过return语句要求返回的值的类型,又称为该函数的类型 。当一个函数不需要通过return语句返回一个值时,称为无返回值函数或无类型函数 , 此时需要使用保留字void作为类型名 。当类型名为int时,可以省略不写 , 但为了清楚起见 , 还是写明为好 。
函数名是用户为函数所起的名字,它是一个标识符,应符合C++标识符的一般命名规则,用户通过使用这个函数名和实参表可以调用该函数 。
参数表又称形式参数表 , 它包含有任意多个(含0个,即没有)参数说明项,当多于一个时其前后两个参数说明项之间必须用逗号分开 。每个参数说明项由一种已定义的数据类型和一个变量标识符组成 , 该变量标识符成为该函数的形式参数,简称形参,形参前面给出的数据类型称为该形参的类型 。一个函数定义中的参数表可以被省略,表明该函数为无参函数,若参数表用void取代,则也表明是无参函数 , 若参数表不为空,同时又不是保留字void,则称为带参函数 。
函数体是一条复合语句,它以左花括号开始,到右花括号结束,中间为一条或若干条C++语句 。
在一个函数的参数表中,每个参数可以为任一种数据类型,包括普通类型、指针类型、数组类型、引用类型等,一个函数的返回值可以是除数组类型之外的任何类型 , 包括普通类型、指针类型和引用类型等 。另外,当不需要返回值时,应把函数定义为void类型 。
二)、定义格式举例
(1) void f1() {...}
(2) void f2(int x) {...}
(3) int f3(int x,int* p) {...}
(4) char* f4(char a[]){...}
(5) int f5(int x,double d) {...}
(6) int f6(int b[10], int n) {...}
(7) void f7(float c[][N], int m, float max) {...}
(8) bool f8(ElemType* bt, ElemType item) {...}
在第一条函数定义中,函数名为f1,函数类型为void , 参数表为空 , 此函数是一个无参无类型函数 。若在f1后面的圆括号内写入保留字void,也表示为无参函数 。
在第二条函数定义中,仅带有一个类型为int的形参变量x,该函数没有返回值 。
在第三条函数定义中,函数名为f3,函数类型为int,函数参数为x和p,其中x为int型普通参数 , p为int*型指针参数 。
在第四条函数定义中,函数名为f4,函数类型为char*,即字符指针类型,参数表中包含一个一维字符数组参数 。注意:在定义任何类型的一维数组参数时,不需要给出维的尺寸,当然给出也是允许的,但没有任何意义 。
在第五条函数定义中,函数名为f5 , 返回类型为int,该函数带有两个形参 , 一个为 整型引用变量x,另一个为双精度变量d 。
在第六条函数定义中,函数名为f6,函数类型为int,即整型引用,该函数带有两个形参,一个是整型数组b,另一个是整型变量n 。在这里定义形参数组b所给出的维的尺寸10可以被省略 。
在第七条函数定义中,函数名为f7,无函数类型,参数表中包含三个参数,一个为二维单精度型数组c,第二个为整型变量m,第三个为单精度引用变量max 。注意:当定义一个二维数组参数时,第二维的尺寸必须给出,并且必须是一个常量表达式,第一维尺寸可给出也可不给出,其作用相同 。
- mysqli获取所有数据 mysql的提取函数
- mysql 分组函数 mysql分组取数据
- mysql hy000 2002 mysql0开头
- mysql统计函数
- 将数据保存到文件中c语言 将数据保存到mongodb
- mysql有rank函数吗 mysql有rank
- redis-cli命令不能用 redis函数调用失败
- mysql索引从0开始 mysql索引从头开始
- 罗布人村天气 mysql语言具有的功能
- mysql的判断函数 mysql怎么判断奇偶数
