例:
#include<stdio.h>
#include<string.h>
#define NAME "GIGATHINK, INC."
#define ADDRESS "101 Megabuck Plaza"
#define PLACE "Megapolis, CA 94904"
#define WIDTH 40
#define SPACE ' '
void show_n_char(char ch,int num);
int main()
{
int spaces;
show_n_char('*',WIDTH);
putchar('\n');
show_n_char(SPACE, 12);
printf("%s\n",NAME);
spaces = (WIDTH - strlen(ADDRESS)) / 2;
show_n_char(SPACE, spaces);
printf("%s\n",ADDRESS);
show_n_char(SPACE,(WIDTH - strlen(PLACE)) / 2);
printf("%s\n",PLACE);
show_n_char('*',WIDTH);
putchar('\n');
return 0;
}
void show_n_char(char ch, int num)
{
int count;
for(count = 1; count <= num; count++)
putchar(ch);
}
在这个例子中文字是居中的,这样就需要打印一定数量的空格在文字前面,其运行结果如下:
根据这个例题来学一下函数参数;
定义带形式参数的函数
void show_n_char(char ch,int num)
这个告诉编译器show_n_char()使用两个参数ch和num,ch是char类型num是int类型,这两个变量被称为形式参数简称形参,形参是局部变量,属于函数私有,也就是在其他函数中运用同名变量
注意:每个变量前都要声明其类型不能写成这个样子
void swap(int x, y)
正确的应该这样写
void swap(int x, int y)
声明带形式参数函数的原型
在使用函数之前,要用ANSI C形式声明函数原型:
void show_n_char(char ch,int num);
函数原型用逗号分隔的列表指明参数(变量名可省略)
调用带实际参数的函数
在函数调用中提供了ch和num的值。
形式参数是被调函数中的变量;
实际参数是主调函数赋给被调函数的具体值
实际参数可以是变量,常量,或甚至是更复杂的表达式,无论实际参数是什么形式都要被求值,然后这个值被拷贝给被调用函数相应的形式参数
例如: show_n_char(SPACE,(WIDTH - strlen(PLACE)) / 2);
这个第二个实参是一个很长的表达式
无论被调用函数对拷贝数据做了什么,主调函数中的原始数据都不会被影响。
注意:实际参数和形式参数
实际参数是出现在函数调用圆括号中的表达式,形式参数是函数定义的函数头中声明的变量调用函数时,创建了声明为形式参数的变量并初始化为实际参数的求职结果