例计算x的立方 #include <stdio.h> a 1.2 float cube(float x) product 1.728 return(x*x*x); mainO float a,product; printf("Please input value of a:") scanf("9f",&a); product=cube(a); printf("Cube of %.4f is %.4fn",a,product); Ch7 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 Ch7_2c /*ch72.c*/ #include <stdio.h 调用前: y: mainO {intx=7,y=11; X: 7 y: printf("x-%d,ty=%d n",x,y); 调用: printf("swapped:n"); a; b: swap(x,y); 四回 printf("x=%d,ty-%d n",x,y); swap: X: y: swap(int a,int b) t:7 int temp; temp temp-a;a-b;b-temp; 调用结束: x:7 y:11
调用前: 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
地址传递 ●方式:函数调用时,将数据的存储地址作为参数传递给形参 ●特点: ◆形参与实参占用同样的存储单元 ◆“双向”传递 ◆实参和形参必须是地址常量或变量
❖地址传递 ⚫方式:函数调用时,将数据的存储地址作为参数传递给形参 ⚫特点: ◆形参与实参占用同样的存储单元 ◆“双向”传递 ◆实参和形参必须是地址常量或变量