C语言中调用函数的两种基础方式(详解)

C语言中调用函数的两种基础方式(详解)

一、前言

函数是构成c语言的基本单位,如何很好的定义并且引用c语言对于写好一个程序而言至关重要,作为新手刚入门的我们,最主要的就是掌握好两种c语言函数调用方式即可,分别是传值调用和引用调用。下面以具体的程序实例来解释两种调用方式的特点和不同。

二、传值调用

传值调用的特点就是他直接将实参(简单说就是我具体要操作的数值)的数据传递给形参(作为一个形式符号,在子函数中说明他将会进行什么操作)。传值调用的特殊性在于他的操作并不会对变量的值发生改变,也就是说操作完成后a还是a,b还是b。以交换两个数的程序为例。

void swap(int x, int y);

#include

int main() {

/* 局部变量定义 */

int a = 100;

int b = 200;

printf("交换前,a 的值: %d\n", a);

printf("交换前,b 的值: %d\n", b);

/* 调用函数来交换值 */

swap(a, b);

printf("交换后,a 的值: %d\n", x);

printf("交换后,b 的值: %d\n", y);

return 0;

}

void swap(int x, int y) {

int temp;

temp = x; /* 保存 x 的值 */

x = y; /* 把 y 赋值给 x */

y = temp; /* 把 temp 赋值给 y */

return;

}

在运行完这个程序过后我们会发现他的输出结果为:

从中我们可以发现传值调用并不会对变量本身产生改变,在这种情况下要想输出两个变量交换后的值,那么printf函数必须要放在子函数swap内,这样直接通过子函数输出,因为主函数中a,b未改变

三、引用调用

引用调用,顾名思义就是直接引用变量进行操作,这一操作是通过函数的指针来实现的。通过指针传递变量的地址,可以直接对变量本身进行操作,这就是其和传值调用最大的不同。我们仍然是以交换两个数的程序为例

void swap(int *x, int *y)

{

int temp;

temp = *x; /* 保存地址 x 的值 */

*x = *y; /* 把 y 赋值给 x */

*y = temp; /* 把 temp 赋值给 y */

return;

}

#include

/* 函数声明 */

void swap(int *x, int *y);

int main ()

{

/* 局部变量定义 */

int a = 100;

int b = 200;

printf("交换前,a 的值: %d\n", a );

printf("交换前,b 的值: %d\n", b );

/* 调用函数来交换值

* &a 表示指向 a 的指针,即变量 a 的地址

* &b 表示指向 b 的指针,即变量 b 的地址

*/

swap(&a, &b);

printf("交换后,a 的值: %d\n", a );

printf("交换后,b 的值: %d\n", b );

return 0;

}

此代码就是采用了引用调用的方法,他的运行结果如下:

四、结语

以上就是两种函数调用的基本方法,他们各有特色,具体的需要在何处使用什么调用方式,仍然需要依据具体的情况来确定,希望大家多提宝贵意见,欢迎留言!

相关文章

监控摄像头怎么连接手机
365bet在线开户

监控摄像头怎么连接手机

⌛ 08-24 👁️ 9304
通胀陷阱事关每个人的生存
365bet在线开户

通胀陷阱事关每个人的生存

⌛ 08-13 👁️ 4553
手机照片轻松传输至U盘的方法步骤介绍
365bet在线开户

手机照片轻松传输至U盘的方法步骤介绍

⌛ 10-08 👁️ 1994