C语言使用函数的优点:

以下是 C 中函数的一些主要优点:

  • 代码重用性(reuse):

我们可以多次调用 C 函数。
因此,无需一遍又一遍地编写相同的代码。

  • 代码优化:

C 函数有助于优化 C 程序,因为我们不需要编写太多代码。

C语言函数声明的语法

return_type function_name(data_type parameter, data_type parameter) 
{ 
	// 要执行的代码
}

函数声明/原型示例

#include <stdio.h>
void display(int x); // 函数声明、函数原型
int main()
{    
	int a=1;
	 display(a); //  调用函数
	return 0;      
}      
void display(int x) // 函数定义
{
 	printf("x=%d",x);
}
更多: zhilu jiaocheng

C语言 函数定义:

当我们定义一个函数时,我们提供了函数的实际主体。

函数定义提供函数的以下部分。

  • 返回类型是值的数据类型(由函数返回)。
  • 在花括号中,函数体是存在的。
  • 一个函数可能有 0 个或者多个参数。当一个函数被调用时,你将一个值传递给参数。我们可以在 C 程序中使用任何类型的参数,例如 int、float、char 等。

函数定义指定了函数的名称、它期望接收的参数的类型和数量,以及它的返回类型。
函数定义还包括函数体及其局部变量的声明,以及确定函数功能的语句。

C语言函数定义 语法:

type functionName(int a, int b) 
{ statement; }

函数声明/函数原型

函数声明(Function Declaration)也称为函数原型(Function Prototype)

C语言函数声明,告诉编译器一个函数的名字,它是返回类型和参数。
我们可以单独定义函数的实际主体。

函数声明的要点:

  • C 中的函数声明总是以分号结尾。
  • 在 C 语言中,默认情况下,函数的返回类型是 integer(int) 数据类型。
  • 函数声明也称为函数原型。
  • 在函数声明中,参数的名称不是强制性的,但我们必须定义它们的数据类型。因此以下声明也是有效的。
int getSum(int, int);
  • 如果函数定义写在 main 函数之前,则不需要函数声明,而如果函数定义写在 main 函数之后,那么我们必须在 main 函数之前写函数声明。

C语言调用函数

一旦我们声明并定义了一个函数,我们就可以在程序的任何地方多次调用它。
该函数将根据我们的参数返回值。
一个函数可以被多次调用。

调用函数示例:

#include
void display(int x ) // 函数声明,定义
{
 printf("x=%d",x);

} 
int main()
{    
	int a=1;
	display(a); 调用函数
	display(a); 可以多次调用函数,所以函数实现了复用性
	return 0;      
}

带返回值的函数调用示例:

#include
int display(int x ) // 函数声明和定义
{
 printf("x=%d",x);
 return(x);
} 
int main()
{    
	int a=1;
	display(a); 
	return 0;      
}
C语言 函数

大多数情况下,我们看到每个 C语言 程序都至少有一个函数,例如 main() 。
我们可以在一个 C语言 程序中使用两个以上的 C 函数。

函数是一组一起执行任务的语句。
所有 C语言 程序都是使用函数编写的,以提高可重用性和可理解性。

C语言函数调用时,参数的传递方式

在调用函数时,我们可以通过以下两种方式传递参数:

  • 按值调用
  • 引用调用

按值调用

当实际参数的副本传递给相应的形式参数时,则将其定义为按值调用。
如果我们改变形式参数,它不会反映实际参数。

按值调用的示例:

#include <stdio.h> 
 void add(int variable ) 
{  
    printf("函数内变量做加法前的值 %d \n",variable);  
    variable=variable+200;  
    printf("函数内变量做加法后的值 %d \n", variable);  
}  

int main() 
{  
    int num=100;  
    printf("调用函数前变量的值 %d \n", num);  
    add(num);// 传递
    printf("调用函数后变量的值%d \n", num);  
    return 0;  
}

在上面的例子中,int num 是实参(parameter),在函数 add() 中,int variable 是形参(argument)。

引用调用

在按引用调用中,实际参数的地址被传递给形式参数,因此对形式参数所做的任何更改也将反映在实际参数中。

引用调用示例:

#include   
void show(int *num)  // 形式参数是指针形式的,表明它接收的是一个地址值。(变量在内存中的地址)
{  
    printf("函数内变量做加法前的值=%d \n",*num);  
    (*num) +=300;  
    printf("函数内变量做加法后的值=%d \n", *num);  
}  

int main() 
{  
    int x=100;  
    printf("函数调用前 x的值=%d \n", x);  
    change(&x);// 在函数中传递实际参数(int x)的引用/地址
    printf("函数调用后 x的值=%d \n", x);  
    return 0;  
}

在引用调用中,我们在形参中传递的是 实参的地址
注意:在引用调用中,形参应该是指针类型的,因为地址类型的值只能保存指针类型的变量。

日期:2020-09-17 00:09:16 来源:oir作者:oir