多个参数,安顺序排列 叫 参数表。
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站设计、外贸营销网站建设、武夷山网络推广、小程序设计、武夷山网络营销、武夷山企业策划、武夷山品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供武夷山建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
参数1,参数2,参数3,参数4,参数5,。。。参数n
共 1 到 n 个。
printf("*****"\n");-- 没有输出参数,没有 输出参数表。
printf("%d %d"\n",a,b);-- a,b 两个参数,参数表就是 a,b.
printf("%d %d %d"\n",a,b,c);-- a,b,c 3个参数,参数表就是 a,b,c
形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量不能使用。
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。而实参在主调函数中已分配内存单元。
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。
实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。
函数名后面的形式参数表列不可以是常量!
C语言中函数有三个概念:定义 声明 调用
函数定义:自定义一个函数,并完成相应的代码实现,如:
int max( int a, int b ) //小括号中的 a, b被称为形参,用来对应相应的实参,因为这里的形参可对应任意的实参值,所以,必须以变量形式体现。
{
return (ab)?a:b ; //返回a b中的大数
}
函数声明:用来描述一个函数的格式,在调用函数前列出。如:
int max( int , int ) ; //这里可以省略形参变量,只列出形参类型即可。
函数调用:调用一个已实现的函数,完成相应的功能,如:
void main()
{
int x=5,y=10 ;
printf( "max is %d\n", max(x,y) ); //这里的x,y被称为实参,可以是变量,也可以是常量。
printf( "max is %d\n", max(5,10) ); //常量作为实参。
}
函数定义包括有参函数和无参函数,无参函数为:
类型标示符
函数名()
{
声明语句
语句部分
}
无参函数:
类型标示符
函数名(形式参数列表)
{
声明部分
语句部分
}
例如:
int
max(int
x,int
y)
{
int
z;
z=xy?x:y;
return(z);
}
文字不好描述啊,举例说明如下:
void fun(int n,int m,int l){其中的int n,int m,int l(或更多项)这一列叫形参表。
……
}
void main(void){
fun(1,2,3);中的1,2,3(或更多项)这一列叫实参表。
}
形式参数就是定义函数时候的参数表,只是定义了调用时参数的个数、类型和用来引用的名字,并没有具体的内容。形参未被调用时,不占存储单元。形参只在调用过程中占用存储单元。
在调用函数时,给形参分配存储单元,实参可以是常量、变量或者表达式,且要与形参类型一致!而且实参要有确定的值,在调用过程中实参将值赋给形参,并将实际参数对应的数值传递给形式参数;
调用结束后,形参单元被释放,实参单元仍然保留
并且维持原值。所以说,实参是调用函数传递的具体数据。实参对形参数据传递时时单向传递。在存储单元中是不同的单元。
下面这段程序中
#includestdio.h
int
fun(int
a,int
b)
{a+=10;
b=a+b*2;
return
a+b;
}
void
main()
{
int
x=3,y=5,z;
z=fun(x,y);
printf("%d
%d
%d\n",x,y,z);
}
a和b都是形式参数,x和y都是实际参数。
程序从主函数开始运行,等到运行到z=fun(x,y)开始调用被调用函数,以被调用函数的形式进行运算,然后把计算的值返回后赋值给z,这样一个运算就算完成了。在调用过程中,形参a和b的值都发生了改变,但是在main函数中,x和y的值都未发生变化。所以说实参向形参的值的传递是单向的。