哟数 如:func(intn) {if(n>10) return(2*x+3) else return }编译时,由于第二个 return语句而给出警告。 说明:1)存储类型(后面讲) 2)数据类型:指函数返回值的类型。若缺省函数 类型,一律按整形处理。 3)函数是平等的兄弟般的关系,它不能嵌套定义 即不能在一个函数体内再定义另一个函数。 4)只有自定义函数而没有main(函数的程序是没 有意义的。(例L4-2)
6 函数 如:func (int n) { if (n>10) return (2*x+3); else return; } 编译时,由于第二个return语句而给出警告。 说明:1)存储类型(后面讲) 2)数据类型:指函数返回值的类型。若缺省函数 类型,一律按整形处理。 3)函数是平等的兄弟般的关系,它不能嵌套定义 即不能在一个函数体内再定义另一个函数。 4)只有自定义函数而没有main()函数的程序是没 有意义的。(例L4—2)
哟数 2、函数的声明 数据类型]函数名(类型标记符[形参],…); 注意后面的“;”不要丢了。它与定义不同,一个函数一般要经过声明 才能使用(就好象变量一样必须先声明才能使用),除非它在调用它 的前面定义。只有当返回的数据类型为int,数据类型才可省略 如:main() double new style(int, double);/*函数声明* Double new style (int a, double x)/函数定义*
7 函数 2、函数的声明 [数据类型] 函数名 (类型标记符 [形参] ,… ); 注意后面的“ ; ”不要丢了。它与定义不同,一个函数一般要经过声明 才能使用(就好象变量一样必须先声明才能使用),除非它在调用它 的前面定义。只有当返回的数据类型为int,数据类型才可省略。 如:main( ) { … double new_style ( int, double ); /*函数声明*/ … } Double new_style (int a, double x) /*函数定义*/ { … }
函数 return语句 return返回值表达式; return后面表达式的类型必须和函数定义时函数名 前的类型保持一致。 三、函数的调用 函数名([实参表]);(如果是有返回值的函数, 则可将调用结果赋值给别的变量,若是无值函数, 则不能赋值,只能单独调用;(例4—1打印若干三 角形) 五、形参、实参、参数的传递 形参:定义函数的参数 实参:调用函数时有具体值的参数
8 函数 二、return 语句 return 返回值表达式; return后面表达式的类型必须和函数定义时函数名 前的类型保持一致。 三、函数的调用 函数名 ([实参表]);(如果是有返回值的函数, 则可将调用结果赋值给别的变量,若是无值函数, 则不能赋值,只能单独调用;(例4—1打印若干三 角形) 五、形参、实参、参数的传递 形参:定义函数的参数。 实参:调用函数时有具体值的参数
函数 关于形参和实参的说明: 1、形参只有当调用时才临时分配存储单元。 2、实参一定要有确定的值,可以是表达式 3、实参和形参的类型应相同或赋值相容。 参数的传递是通过调用来完成的, 分为按值传递和按址传递
9 函数 • 关于形参和实参的说明: 1、形参只有当调用时才临时分配存储单元。 2、实参一定要有确定的值,可以是表达式。 3、实参和形参的类型应相同或赋值相容。 参数的传递是通过调用来完成的, 分为按值传递和按址传递
函数 例L43c maint MaO函数、角 Swap函数 i int a=3, b=5 void swap( int, int ) swap(a, b) printf(“a=%d,b=%dn”,a,b); a 传递值 void swap(int x, int y) 5 int tem temp=X; Xy; y=temp; printf("x%d, y=%d n,x, y) 是按值传递的 temp 按址传递放在指针里面讲
10 函数 例L4_3.c main( ) { int a=3, b=5; void swap( int , int ); swap (a, b); printf(“a=%d, b=%d\n ”, a, b); } void swap (int x, int y) { int temp; temp=x; x=y; y=temp; printf(“x=%d , y=%d \n ”, x, y); } 是按值传递的 按址传递放在指针里面讲。 Main()函数: 调用 Swap函数 传递值 3 5 a b 3 5 x y 3 temp