为什么定义函数C语言要求,在程序中用到的所有函数,必须先定义,后使用”。定义函数应包括以下几个内容(1)指定函数的名字,以便以后按名调用。(2)指定函数的类型,即函数返回值的类型。(3)指定函数的参数的名字和类型,以便在调用函数时向它们传递数据。对无参函数不需要这项。(4)指定函数应当完成什么操作,也就是函数是做什么的,即函数的功能。这是最重要的,是在函数体中解决的
为什么定义函数 定义函数应包括以下几个内容: (1) 指定函数的名字,以便以后按名调用。 (2) 指定函数的类型,即函数返回值的类型。 (3) 指定函数的参数的名字和类型,以便在调用函数时向它们传递数据。对无参函数不需要这项。 (4) 指定函数应当完成什么操作,也就是函数是做什么的,即函数的功能。这是最重要的,是在函数体中 解决的。 C语言要求,在程序中用到的所有函数,必须 “先定义,后使用
定义函数的方法定义有参函数定义无参函数类型名函数名(形式参数表列)类型名函数名0类型名函数名(void)L+y或函数体函数体函数体intmax(intxinty)函数名后面括号内的void表示空”即函数没有int z.1/声明部分1/执行语句部分z=x>y?xy:参数。retum(z):函数体包括声明部分和语句部分。定义空函数类型名函数名()在定义函数时要用类型标识符"(即类型名)指定0函数值的类型,即指定函数带回来的值的类型。函数体为空,什么也不做
定义函数的方法 类型名 函数名() { 函数体 } 函数名后面括号内的void表示 “空 ”,即函数没有 参数。 函数体包括声明部分和语句部分。 在定义函数时要用 “类型标识符 ”(即类型名)指定 函数值的类型,即指定函数带回来的值的类型。 定义无参函数 类型名 函数名(void) { 函数体 } 或 类型名 函数名(形式参数表列) { 函数体 } 定义有参函数 int max(int x,int y) { int z; //声明部分 z=x>y?x:y; //执行语句部分 return(z); } 类型名 函数名() { } 定义空函数 函数体为空,什么也不做
调用函数
调用函数
函数调用的形式//调用无参函数print_star():函数名(实参表列)//调用有参函数c=max(a,b):1.函数调用语句把函数调用单独作为一个语句。如printf_star(O)这时不要求函数带回值,只要求函数完成一定的操作。2.函数表达式函数调用出现在另一个表达式中,如c=max(a,b):这时要求函数带回一个确定的值以参加表达式的运算。3.函数参数函数调用作为另一个函数调用时的实参。如m=max(a,max(b.c):,又如:printf("%d",max(a,b)
函数调用的形式 函数名(实参表列) print_star(); //调用无参函数 c=max(a,b); //调用有参函数 1. 函数调用语句 把函数调用单独作为一个语句。如printf_star(); 这时不要求函数带回值,只要求函数完成一定的操作。 2. 函数表达式 函数调用出现在另一个表达式中,如c=max(a,b); 这时要求函数带回一个确定的值以参加表达式的运算。 3. 函数参数 函数调用作为另一个函数调用时的实参。如m=max(a,max(b,c));,又如:printf (″%d″, max (a,b));
形式参数和实际参数在调用有参函数时,主调函数和被调用函数之间有数据传递关系。在定义函数时函数名后面括号中的变量名称为形式参数”(简称形参”)或“虚拟参数”。在主调函数中调用一个函数时,函数名后面括号中的参数称为实际参数(简称实参”)。实际参数可以是常量、变量或表达式,但要求它们有确定的值。实参与形参的类型应相同或赋值兼容。赋值兼容是指实参与形参类型不同时能按不同类型数值的赋值规则进行转换
形式参数和实际参数 在调用有参函数时,主调函数和被调用函数之间有数据传递关系。 在定义函数时函数名后面括号中的变量名称为 “形式参数 ”(简称 “形 参 ”) 或“虚拟参数”。 在主调函数中调用一个函数时,函数名后面括号中的参数称为“实际参数” (简称“实参”)。 实际参数可以是常量、变量或表达式,但要求它们有 确定的值。 实参与形参的类型应相同或赋值兼容。赋值兼容是指实参与形参类型不同时 能按不同类型数值的赋值规则进行转换