C语言从入门到精通第13天(函数的调用)

这篇具有很好参考价值的文章主要介绍了C语言从入门到精通第13天(函数的调用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

函数在定义完以后,如果不被调用时不会被执行到的;在程序中main函数是主函数,是会被自动调用,C程序有且只有一个main函数。

无参函数的调用

调用方法:

函数名();
或者
变量 = 函数名();

如:

int func(){
    printf("hello\n");
    return 0;
}

int main() {
    // 调用一个无参函数
    func();
	
	// 函数是int类型,所以接收的变量的数据类型也为int
    int a = func();

    printf("%d",a);
    return 0;
}

这里需要注意的是,如果我们采用定义变量的方式来调用函数,当函数有返回值时,我们定义的这个变量的类型必须和函数的返回值是一致的。

有参函数的调用

调用方法:

函数名(实参列表)
或者
变量 = 函数名(实参列表)

如:

int func(int b, int c){
    printf("%d %d\n",b,c);
    return 0;
}

int main() {
    // 调用一个有参函数
    func(1,2);
    
    // 变量的类型和函数类型一致
    int a = func(1,2);

    printf("%d",a);
    return 0;
}

这里需要注意的是在函数调用时的实参个数必须和形参个数一样,并且类型也必须一致。

函数的嵌套调用

函数的嵌套调用指的是,某个函数在另一个函数中被调用。

代码如下:

int b()
{
    printf("b\n");
    return 0;
}
int a()
{
    printf("a\n");
    b();
    return 0;
}
int main()
{
    a();
    return 0;
}

他调用逻辑如下图::
C语言从入门到精通第13天(函数的调用)

首先函数从主函数main开始,在main函数中调用了a函数,此时我们进入a函数中,先输出a,然后调用b,需要注意的是a函数的调用还没有结束,此时再进入b函数,输出b,然后b函数运行return 0 语句,此时b函数的运行就结束了,然后回到a中执行return 0语句,此时a函数就运行完毕了,最后再回到main函数中执行return 0语句,到这个时候函数的嵌套调用就执行完毕了。

递归函数的调用

递归函数的作用是重复调用函数本身,直到满足条件,然后终止调用。最经典的例子就是斐波那契数列,代码如下:

// 定义函数
int f(int n){
    if(n==1)
        return 1;
    return f(n-1)*n;
}

int main(){
    int a = f(3);
    printf("%d",a);
    return 0;
}

此时当我们调用f(3)时,函数返回f(2)*3,函数没有结束,返回的f(2)继续调用,返回f(1)*2,此时进行条件判断,n==1,f(1) == 1,然后函数再一次返回f(2) == 2,f(3)==f(2)*3==6,将求得的值返回给变量a ,输出a值为6。

函数的声明

再上面我们都只涉及到了一个函数,如果面对多个函数时,我们该怎么去定义和调用呢?例如:

int a(){
    
    // 此时语句报错
    b();
    return 0;
}
int b(){
    printf("hello");
    return 0;
}

再定义时我们如果不按照先后顺序进行定义的函数编译器直接就报错,如果再遇到很多的函数定义时,又出现嵌套调用,我们一个一个去查看定义函数的先后顺序,这样就非常的麻烦,此时我们可以使用函数的声明。他的语法格式如下:

函数类型 函数名(形参列表);

需要注意的是这里的函数的定义,必须与函数定义时的返回值类型、函数名、形参列表一致,形参列表可以不填写变量名字,只需要填写形参的类型即可。如:int func(int,float);

此时我们还是像上面一样定义就不会报错了:文章来源地址https://www.toymoban.com/news/detail-426303.html

int a();
// 声明函数的形参列表中不带有变量
int b(int);

int a(){

    // 此时语句报错
    b(3);
    return 0;
}
int b(int a){

    printf("hello %d",a);
    return 0;
}
int main(){
    a();
    return 0;
}

到了这里,关于C语言从入门到精通第13天(函数的调用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言从入门到精通第16天(指针的定义与基本使用)

    在使用指针之前我们需要对指针进行初步的了解,首先我们要知道什么是指针? 通过前面的学习我们已经知道了内存的存储方式,他是通过一个字节一个字节的连续存储单位进行内存的存储,每一个字节我们称为一个内存单元。为了能够正确的访问这些内存单元,就必须为每

    2024年02月02日
    浏览(34)
  • 【C语言进阶】最常用的库函数大全——从入门到精通

    前言: 一.字符串函数 1.strlen——求字符串长度 strlen 2.长度不受限制的字符串函数 a.strcpy——字符串拷贝 strcpy  b.strcat——追加字符串 strcat  c.strcmp——字符串比较 strcmp 3.长度受限制的字符串函数——strncpy,strncat,strncmp 为什么会出现这些函数呢? strncpy函数: strncpy strncat函数

    2024年02月03日
    浏览(57)
  • 100天精通Golang(基础入门篇)——第15天:深入解析Go语言中函数的应用:从基础到进阶,助您精通函数编程!(进阶)

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月12日
    浏览(68)
  • 100天精通Golang(基础入门篇)——第12天:深入解析Go语言中的集合(Map)及常用函数应用

    🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批

    2024年02月12日
    浏览(50)
  • 13. python从入门到精通——Python操作数据库

    python database API 规范对于关系数据库的访问,Python社区已经制定出一个标准,称为Python Database API,通过这个接口使python跨不同数据库的操作代码可以更加具有可移植性、让 Python 可以连接(并操作)更多的数据库。 用于管理数据库连接的Connection(连接)对象 用于执行查询的

    2024年02月10日
    浏览(91)
  • 13.Python从入门到精通—Python 集合操作与方法概览

    在Python中,集合是一种无序、不重复的数据类型。集合通常用于去重、检查成员资格等操作。Python提供了内置的set类型来实现集合,可以使用花括号{}或set()函数来创建一个集合。 使用花括号创建集合: 使用set()函数创建集合: 可以使用add()方法向集合中添加元素: 可以使用

    2024年03月19日
    浏览(45)
  • Android 13.0 添加自定义服务,并生成jar给第三方app调用

    在13.0系统产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能 添加

    2024年02月05日
    浏览(75)
  • Shell 函数详解(函数定义、函数调用)

    Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可。 Shell 中的函数和C++、Java、Python、C# 等其它编程语言中的函数类似,只是在语法细节有所差别。 Shell 函数定义的语法格式如下:  对各个部分的说明: f

    2024年02月09日
    浏览(58)
  • 54-函数的3种定义,函数的4种调用:函数模式调用,方法模式调用,构造函数模式调用,apply call bind调用

    一.函数的3种定义  1.函数的声明定义:具有声明提升 2.函数的表达式定义 3.构造函数定义 var 变量 = new F unction(\\\"形参1\\\",\\\"形参2\\\",\\\"形参3\\\",\\\"方法体\\\"); 二.函数的4种调用 1普通模式调用 2. 内联模型 函数模式调用, this 指向 window  

    2024年01月25日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包