例计算x的立方 #include <stdio.h> a 2 float cube(float x product L 1.728 i return(x*x*x) maino i float a, product printf("please input value of a scanf(%f", &a) product=cube(a) printf( Cube of %. 4f is %/ 4fn", a, product) C Ch 1.c
例 计算x的立方 #include <stdio.h> float cube(float x) { return(x*x*x); } main() { float a, product; printf("Please input value of a:"); scanf("%f",&a); product=cube(a); printf(”Cube of %.4f is %.4f\n",a,product); } x a product ×× ×× 1.2 1.2 1.728
★参数传递方式 心值传递方式 方式:函数调用时为形参分配单元并将实参的值复制到形参 中;调用结東,形参单元被释放,实参单元仍保留并维持原值 特点 ◆形参与实参占用不同的内存单元 ◆单向传递
参数传递方式 ❖值传递方式 ⚫方式:函数调用时,为形参分配单元,并将实参的值复制到形参 中;调用结束,形参单元被释放,实参单元仍保留并维持原值 ⚫特点: ◆形参与实参占用不同的内存单元 ◆单向传递
例交换两个数C Chac ch7 2.c*/ #include <stdio.h> 调用前 maint i int x7,y=1l X:7 printf("x=%d, ty=%dn"x,y) 调用 printf("swapped: n") b:|11 swap(x,y) printf("x%od, ty=%dn",x y) Swap swap(int a, int b) i int temp temp temp=a; a=b; b=temp 调用结束:
调用前: x: 7 y: 11 调用结束: x: 7 y: 11 例 交换两个数 /*ch7_2.c*/ #include <stdio.h> main() { int x=7,y=11; printf("x=%d, \ty=%d \n",x,y); printf("swapped: \n"); swap(x,y); printf("x=%d, \ty=%d \n",x,y); } swap(int a,int b ) { int temp; temp=a; a=b; b=temp; } 调用: a: 7 b: 11 x: 7 y: 11 swap: x: 7 y: 11 a: 11 b: 7 temp
◆地址传递 方式:函数调用时,将数据的存储地址作为参数传递给形参 特点 ◆形参与实参占用同样的存储单元 ◆“双向”传递 ◆实参和形参必须是地址常量或变量
❖地址传递 ⚫方式:函数调用时,将数据的存储地址作为参数传递给形参 ⚫特点: ◆形参与实参占用同样的存储单元 ◆“双向”传递 ◆实参和形参必须是地址常量或变量