函数的定义与参数(初学者)

1、函数定义的一般形式:

(1)定义无参函数的一般形式为:

类型标识符 函数名()

{

  声明部分

  语句部分

}

在定义函数时要用“类型标识符”指定函数值的类型,即函数带回来的值的类型。

(2)定义有参函数的一般形式为:

类型标识符 函数名(形式参数表列)

{

  声明部分

  语句部分

}

例:

int max(int x,int y)
{
    int z;/*声明部分*/
    z=x>y?x:y;
    return(z);
}

(3)定义空函数的一般形式为:

类型标识符 函数名()

{}

例:

dummy()

{}

注:定义函数时不写类型标识符时,系统默认为int。

调用此函数时,什么工作也不做,没有任何作用。但其在程序开发时作为一个虚设部分常常也是很有用的。

2、参数函数和函数的值

形式参数:在定义函数时函数名后面括号中的变量名称称为形式参数(简称形参)。

实际参数:主调函数中调用一个函数时,函数名后面括号中的参数称为实际参数(简称实参),即实参出现在主调函数中。

大多数情况下,主调函数和被调用函数之间有数据传递的关系。

return后面括弧中的值()作为函数带回的值(称函数返回值)。

在不同函数之间传递数据,可以使用的方法:

参数:通过形参和实参。

返回值:用return语句返回计算结果。

全局变量:外部变量(不提倡使用)。

例:

#include <stdafx.h>
#include<stdio.h>

void main()
{
    int max(int x,int y);/*max函数声明*/
    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);
}

关于形参与实参的说明:

(1)在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的储存单元。只有在发生函数调用时,函数中的形参才被分配内存单元。在调用结束后,形参所占的内存单元也被释放。

(2)实参可以是常量,变量或表达式。

如:max(3,a+b);

但要求它们有确定的值。在调用时将实参的值赋给形参。

(3)在被定义的函数中,必须指定形参的类型。

(4)实参与形参的类型应相同或赋值兼容。

(5)在C语言中,实参向对形参的数据传递是“值传递”(相当与copy),单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。

原文地址:https://www.cnblogs.com/lvfengkun/p/10328327.html