10-函数的定义
1、无参无返回值
一般形式如下:
void 函数名()
{
声明部分 //定义局部变量 语句
}
注意:函数定义完成后,不能自动执行,需要调用才可以执行。
void 无返回值函数:此类函数用于完成某项特定的处理任务,执行完后不向调用者返回执行结果,这类函数类似于其他语言的过程;由于函数无返回值,用户在定义此类函数时可指定其函数返回值为“空类型”。 void表示函数返回值为空。
2、有参无返回值
一般形式如下:
void 函数名(形式参数列表)
{
声明部分语句
}
形式参列表的格式: 类型1 变量1,类型2 变量2,.......
思考&实现1:
打印图形的案例中,能否通过函数改进,实现输入一个数字N, 则打印N遍?
1 #include <stdio.h> 2 3 /*打印一条横线*/ 4 void printLine() 5 { 6 printf("_____________________\n"); 7 } 8 9 /* 10 打印多条横线 int n 就是函数printManyLine的形式参数。 11 */ 12 13 void printLineNum(int n) 14 15 { 16 for (int i=0; i<n; i++) 17 { 18 //每调用一次就打印1行横线 19 print_line(); 20 } 21 } 22 23 int main() 24 { 25 printLine(2);
26 return 0; 27 }
3、无参有返回值函数定义
一般形式如下:
返回值类型 函数名()
{
声明部分语句
return 返回值类型变量或常量;
//返回给主调函数
}
其中返回值类型和函数名称为函数头。
返回值类型指明了本函数的返回值类型。函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。{}中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说明。
4、有参有返回值函数定义
一般形式如下:
返回值类型 函数名(形式参数列表)
{
声明部分语句
return 返回值类型变量或常量;
}
有参函数比无参函数多了一个内容,即形式参数列表。在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。
5、定义函数时注意函数名不能重复
思考&实现2:
1)通过函数实现求出两个数中的最大值的功能?
方法一:
1 int max(int a,int b) 2 { 3 if (a>b) 4 { 5 printf("最大值是 %d\n",a); 6 } 7 else 8 { 9 printf("最大值是 %d\n",b); 10 } 11 }
方法二:
1 int max(int a,int b) 2 { 3 return a>b?a:b; 4 }
2)分析函数形参底层存储原理
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。 因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。