函数类型 函数名(形式参数类型说明表)
{
声明部分
执行部分
}
函数类型 函数名(形式参数类型说明表)
{
声明部分
执行部分
}
函数调用的形式:
(1)作为函数语句调用。函数一般无返回值。例:
printf(“Hello,World!\n”);
(2)作为函数表达式调用。例:
m=max(a,b)*2;
(3)作为函数参数调用。例:
printf(“%d”,max(a,b));
m=max(a,max(b,c));
#include <stdio.h>
void main()
{ int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("Max is %d",c);
}
int max(int x, int y)
{ int z;
z=x>y?x:y;
return(z);
}
值传递方式方式:
函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值;
特点:
形参与实参占用不同的内存单元;
单向传递地址传递方式:
函数调用时,将数据的存储地址作为参数传递给形参
特点:
自动变量是最常用的。 关键字auto能够显式地指定存储类别。
显式定义 auto int x,y;
隐含定义 等价 int x,y;
实际上关键字“auto”可以省略,auto不写则隐含确定为“自动存储类别”,即动态存储方式。
程序中大多数变量属于自动变量。
对于使用频繁的变量,可以使用register声明为寄存器变量,其值存储在CPU中,加快了运行速度。
如:
register int x;
register char c;
函数中的局部变量的值在函数调用结束后不消失而保留原值,以便下一次调用该函数时可以使用上一次调用的最后结果。这时就应该指定该局部变量为“静态局部变量”。
外部变量(即全局变量)是在函数的外部定义的,它的作用域为从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序中各个函数所引用。
⑴在一个文件内声明外部变量
如果全局变量在后面定义,而在前面的函数中要使用,则必须在使用前用extern声明该全局变量。
如:extern intAbc;
外部变量只限于被本文件引用,而不能被其它文件引用,可以在定义外部变量时加一个static声明。