参数的传递
1. 函数调用时,被调函数中的形参被分配 临时的存储单元,实参的值赋给形参变量 2. 实参可以是常量、变量或表达式 3. 实参的个数、类型和顺序必须与形参一致 4. 形参与实参各占一个独立的存储空间,调 用结束后,形参单元被释放
形参值的改变不会影响实参-----值传递
例:P134 main( ) { int v1=10, v2=20; printf(“v1=%d v2=%d\n”,v1,v2); printf(“_ do swap _\n”); swap(v1,v2); printf(“v1=%d v2=%d\n”,v1,v2); } void swap(int x, int y) { int temp; v1=10 v2=20 temp=x; _ do swap _ x=y; y=temp; v1=10 v2=20 }
自定义函数的应用实例
P136 例3:输出“九 九表”。 它是一个
9行9列的二维表格,
加上一个行标题和一
个列标题,显示出来
应该是10行10列。
#include <stdio.h> void drawLine(int n,char ch); /* 连续显示n个ch字符 */ main() { int i,j; printf("\n 9.9 table\n"); /* 显示表名 */ drawLine(30, '='); /* 显示每列的标题 */ printf("\n 1 2 3 4 5 6 7 8 9"); drawLine(30, '='); for (i=1; i<=9; i++) { /* 显示每行的内容 */ printf("\n%3d", i); for (j=1; j<=9; j++) printf("%3d", i*j); if (i<9) drawLine(30, '-'); else drawLine(30, '='); } void drawLine(int n, char ch) /*连续显示n个ch字符*/ } { int i; putchar('\n'); /*换行*/ for (i=1; i<=n; i++) putchar(ch); /*连续显示n个字符ch*/ }