C 语言函数完全指南:创建、调用、参数传递、返回值解析

C 语言中的函数

函数是一段代码块,只有在被调用时才会运行。

您可以将数据(称为参数)传递给函数。

函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用。

预定义函数

事实证明,您已经知道什么是函数了

例如,main() 是一个函数,用于执行代码,printf() 也是一个函数,用于向屏幕输出/打印文本:

1int main() { 2 printf("Hello World!"); 3 return 0; 4}

创建函数

要创建(通常称为声明)您自己的函数,请指定函数的名称,然后是括号 () 和花括号 {}

语法:

1void myFunction() { 2 // 要执行的代码 3}

示例解释:

  • myFunction() 是函数的名称
  • void 意味着该函数没有返回值
  • 在函数内(主体),添加代码定义函数应该做什么

调用函数

声明的函数不会立即执行。它们被“保存以便以后使用”,并在被调用时执行。

要调用函数,请编写函数的名称,后跟两个括号 () 和分号 ;

在以下示例中,当调用 myFunction() 时,它用于打印文本(操作):

1// 创建一个函数 2void myFunction() { 3 printf("我刚被执行了!"); 4} 5 6int main() { 7 myFunction(); // 调用函数 8 return 0; 9} 10 11// 输出 "我刚被执行了!"

函数可以被多次调用:

1void myFunction() { 2 printf("我刚被执行了!"); 3} 4 5int main() { 6 myFunction(); 7 myFunction(); 8 myFunction(); 9 return 0; 10} 11 12// 我刚被执行了! 13// 我刚被执行了! 14// 我刚被执行了!

C 语言中的函数参数

参数和参数

可以通过参数将信息传递给函数。参数在函数中充当变量。

参数在函数名后,括号内指定。您可以添加任意数量的参数,只需用逗号分隔即可:

语法:

1returnType functionName(parameter1, parameter2, parameter3) { 2 // 要执行的代码 3}

以下函数接受一个名为 name 的字符串参数。当调用该函数时,我们会传递一个名字,用于在函数内部打印 “Hello” 和每个人的名字。

1void myFunction(char name[]) { 2 printf("Hello %s\n", name); 3} 4 5int main() { 6 myFunction("Liam"); 7 myFunction("Jenny"); 8 myFunction("Anja"); 9 return 0; 10} 11 12// Hello Liam 13// Hello Jenny 14// Hello Anja

当参数传递给函数时,它被称为参数。因此,在上面的示例中:name 是参数,而 Liam、JennyAnja 是参数。

多个参数

在函数内,您可以添加任意数量的参数:

1void myFunction(char name[], int age) { 2 printf("Hello %s. You are %d years old.\n", name, age); 3} 4 5int main() { 6 myFunction("Liam", 3); 7 myFunction("Jenny", 14); 8 myFunction("Anja", 30); 9 return 0; 10} 11 12// Hello Liam. You are 3 years old. 13// Hello Jenny. You are 14 years old. 14// Hello Anja. You are 30 years old.

请注意,当您使用多个参数时,函数调用必须具有与参数数目相同数量的参数,并且参数必须按相同顺序传递。

将数组作为函数参数传递

您还可以将数组传递给函数:

1void myFunction(int myNumbers[5]) { 2 for (int i = 0; i < 5; i++) { 3 printf("%d\n", myNumbers[i]); 4 } 5} 6 7int main() { 8 int myNumbers[5] = {10, 20, 30, 40, 50}; 9 myFunction(myNumbers); 10 return 0; 11}

示例解释

函数 (myFunction) 以一个数组作为参数 (int myNumbers[5]),并使用 for 循环遍历数组元素。

当在 main 中调用函数时,我们会传递 myNumbers 数组,它会输出数组元素。

请注意,当您调用函数时,只需在将它作为参数传递时使用数组名称即可 (myFunction(myNumbers))。但是,在函数参数中需要完整的数组声明 (int myNumbers[5])。

返回值

以前的示例中使用的 void 关键字表示函数不应返回值。如果想要函数返回一个值,您可以使用数据类型(例如 intfloat 等)代替 void,并在函数内部使用 return 关键字:

1int myFunction(int x) { 2 return 5 + x; 3} 4 5int main() { 6 printf("Result is: %d", myFunction(3)); 7 return 0; 8} 9 10// 输出 8 (5 + 3)

此示例返回具有两个参数的函数的总和:

1int myFunction(int x, int y) { 2 return x + y; 3} 4 5int main() { 6 printf("Result is: %d", myFunction(5, 3)); 7 return 0; 8} 9 10// 输出 8 (5 + 3)

您还可以将结果存储在变量中:

1int myFunction(int x, int y) { 2 return x + y; 3} 4 5int main() { 6 int result = myFunction(5, 3); 7 printf("Result is = %d", result); 8 return 0; 9} 10 11// 输出 8 (5 + 3)

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏

评论区

加载中...

相关推荐

js 的 forEach,map,filter,some,every,find(es6),reduce详解

forEach()定义和用法forEach()方法用于调用数组的每个元素,并将元素传递给回调函数注意:forEach()对于空数组是不会执行回调函数的。语法array.forEach(function(currentValue,index,arr),thisValue)参数function(currentValue,index,a

go 的匿名函数和闭包

匿名函数匿名函数是指不需要定义函数名的一种函数实现方式。在Go语言中,函数可以像普通变量一样被传递或使用,这与C语言的回调函数比较类似。不同的是,Go语言支持随时在代码里定义匿名函数。匿名函数由一个不带函数名的函数声明和函数体组成,如下所示:!(https://

PHP匿名函数及闭包

匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这个功能了,目前使用比较广泛的Javascript以及C,PHP直到5.3才开始真正支持匿名函数,C的新标准C0x也开始支持了。匿名函数是一类不需要指定标示符,而又可以被调用的函数或子例程,匿名函数可以方便的作为参数传递给其他函数,最常见应用是作为回调函数

PHP匿名函数及闭包(精讲)

匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这个功能了,目前使用比较广泛的JavaScript以及C,PHP直到5.3才开始真正支持匿名函数,C的新标准C0x也开始支持了。匿名函数是一类不需要指定标示符,而又可以被调用的函数或子例程,匿名函数可以方便的作为参数传递给其他函数,最常见应

C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析

CMethods方法是一段代码,只有在调用时才会运行。您可以将数据(称为参数)传递给方法。方法用于执行某些操作,也被称为函数。为什么使用方法?为了重用代码:定义一次代码,然后多次使用。创建一个方法方法的定义以方法的名称开头,后跟括号()。C提供了一些预定义

深入了解 Java 方法和参数的使用方法

Java方法简介方法是一块仅在调用时运行的代码。您可以将数据(称为参数)传递到方法中。方法用于执行特定的操作,它们也被称为函数。使用方法的原因重用代码:定义一次代码,多次使用。提高代码的结构化和可读性。将代码分解成更小的模块,易于维护和理解。创建方法方法必