使用函数的目的: 省去重复代码的编写,可以在多个地方调用,使得程序模块化
主要分三步: 声明函数原型 使用函数 定义函数
1 #include<stdio.h> 2 #include<string.h> 3 #define NAME "heipi" 4 #define ADDRESS "wu han university of techonology " 5 #define PLACE "shang hai , pu dong " 6 #define WIDTH 40 7 #define SPACE ‘ ‘ 8 void show_n_char(char ch , int num ); 9 int main() 10 { 11 int spaces; 12 show_n_char(‘*‘,WIDTH); 13 putchar(‘\n‘); 14 15 spaces=(WIDTH-strlen(NAME))/2; 16 show_n_char(SPACE,spaces); 17 printf("%s\n",NAME); 18 19 spaces=(WIDTH-strlen(ADDRESS))/2; 20 show_n_char(SPACE,spaces); 21 printf("%s",ADDRESS); 22 23 putchar(‘\n‘); 24 25 spaces=(WIDTH-strlen(PLACE))/2; 26 show_n_char(SPACE,spaces); 27 printf("%s\n",PLACE); 28 show_n_char(‘*‘,WIDTH); 29 printf("\n"); 30 31 32 33 } 34 35 void show_n_char(char ch , int num ) 36 { 37 int count ; 38 for(count=1;count<=num;count++) 39 putchar(ch); 40 41 }
清单9.2
形式参数: 形式参数是局部变量, 他们是 函数所私有。意味着在其他函数中可以使用相同的变量名
实际参数: 通过实际参数对上面的 ch , num 赋值 ,实参可以是常数,变量,一个复杂的表达式,无论何种形式的实际参数,执行的时候首先要计算他的值,然后将
该值 复制 给 被调用函数中的相应的形式参数, 这里是 值传递,那么关于地址传递呢,That‘s another story . 我们以后再讲。 记住是 复制 。所以不管在被调用函数
对复制的数值进行怎样的操作, 调用函数中的原数值不会受到任何影响的。这和指针的地址传递还是有区别的。
时间: 2024-11-29 00:05:59