前言:
此时我们对“c语言值传递函数怎么写”大概比较注重,我们都想要剖析一些“c语言值传递函数怎么写”的相关文章。那么小编也在网络上汇集了一些有关“c语言值传递函数怎么写””的相关资讯,希望大家能喜欢,看官们一起来学习一下吧!一、函数的定义
函数由函数头和函数主体组成,函数头主要包括函数名称、函数返回值类型、函数参数列表,函数主体即调用函数时要执行的代码块,当函数有返回值时,可以使用 return 返回数据。
/* 定义一个 add 函数, 有两个 int 类型的参数, 返回值类型为 int 类型。 */int add(int num1, int num2){ /* 函数主体 */ int result = num1 + num2; /* 返回函数结果 */ return result;}/* 函数无需返回值时,返回类型为 void 函数的参数列表也可以为空 */void print_hello(){ printf("Hello C!");}二、函数的声明与调用
函数声明会告诉编译器函数名称及如何调用函数,函数的实际主体可以单独定义。
#include <stdio.h>/* 函数声明 *//* 函数声明时,参数名称可以省略 */int add(int, int);/* 函数的定义与声明 *//* 同一源文件中,当函数定义在调用之前,可以省略声明 */int max(int fir, int sec){ return fir >= sec ? fir : sec;}int main(){ int a = 100, b = 200; int sumNum, maxNum; /* 调用函数 */ sumNum = add(a, b); maxNum = max(a, b); printf("sumNum = %d\n", sumNum); printf("maxNum = %d\n", maxNum); return 0;}/* 定义 add 函数 */int add(int num1, int num2){ // 计算两数之和 int result = num1 + num2; return result;}
而如果函数的定义是在其他源文件中的,则函数声明是必需的,您应该在调用函数的文件顶部声明函数。
/* test1.c */// 函数定义int add(int num1, int num2){ return num1 + num2;}
/* test.c */#include <stdio.h>#include "test1.c"/* 函数声明 */int add(int num1, int num2);int main(){ int a = 100, b = 200; int sumNum; /* 调用函数 */ sumNum = add(a, b); printf("sumNum = %d\n", sumNum); return 0;}三、函数的参数
如果函数要使用参数,则必须声明接受参数值的变量。这些变量称为函数的形式参数。形式参数就像函数内的其他局部变量,在进入函数时被创建,退出函数时被销毁。
当调用函数时,有两种向函数传递参数的方式:值传递与引用传递。
1. 值传递
将参数的实际值复制给函数的形式参数。这种情况下,修改函数内的形式参数不会影响实际参数。默认情况下,C 语言使用传值调用方法来传递参数。
#include <stdio.h>/* 函数声明 */void swap(int x, int y);int main(){ /* 局部变量定义 */ int a = 100; int b = 200; printf("交换前:a=%d,b=%d\n", a, b); /* 调用函数来交换值 */ swap(a, b); printf("交换后:a=%d,b=%d\n", a, b); return 0;}/* 函数定义 */void swap(int x, int y){ int temp; /* 交换 x 与 y */ temp = x; x = y; y = temp;}
$gcc test.c && ./a.out交换前:a=100,b=200交换后:a=100,b=200
2. 引用传递
引用传递的方式,形参为指向实参地址的指针,当对形参的指向数据操作时,就相当于对实参本身进行了操作。
#include <stdio.h>/* 函数声明 */void swap(int *x, int *y);int main(){ /* 局部变量定义 */ int a = 100; int b = 200; printf("交换前:a=%d,b=%d\n", a, b); /* 调用函数来交换值 */ swap(&a, &b); printf("交换后:a=%d,b=%d\n", a, b); return 0;}/* 函数定义 */void swap(int *x, int *y){ int temp; /* 交换 x 与 y */ temp = *x; *x = *y; *y = temp;}
$gcc test.c && ./a.out交换前:a=100,b=200交换后:a=200,b=100
标签: #c语言值传递函数怎么写 #c语言 传值