c语言对函数的认识(C语言自学函数说明4)
c语言对函数的认识(C语言自学函数说明4)
2024-07-05 05:39:13  作者:狠狠想迩  网址:https://m.xinb2b.cn/tech/zhr450516.html

1、函数的返回值与函数要实现的功能的关系

比如,对于月历程序

c语言对函数的认识(C语言自学函数说明4)(1)

函数3设计为不返回函数值,所以,定义为void类型。自然,函数功能最后也没有使用return语句。

但是,如果我设计成这样,可不可以?

c语言对函数的认识(C语言自学函数说明4)(2)

那也就是说,我设计成需要返回一个int类型的结果值,然后通过return 0;这个0也可以随便换成其他的值,比如5 10 25 14等任意值,没关系,那现在的意思是,这个int与return配合使用,与函数要实现的功能以及函数本身有没有真的能解算出一个结果有绝对的关系吗?

没有!记住没有!没有!没有!

就像上面这个一样,改成有返回值,与原来没有返回值的功能一样,并没有改变啥!

所以,一个函数要不要返回值,以及返回什么值,其实与函数功能并没有严格的对应,可以说完全是程序员自己在设定,当然,如果一个函数功能本身就可以得出一个结果值,或者确实需要一个结果值,那我们可以顺坡下驴,就按照函数的要求进行设定得了,省的我们给他设定,比如

c语言对函数的认识(C语言自学函数说明4)(3)

函数1呢,被设定为用来判断一个年份是不是闰年,而这个是不是闰年的结果呢,又被用到

c语言对函数的认识(C语言自学函数说明4)(4)

函数2的里面继续使用,这样,出现了连续套用的情况,那如果人为不给函数1设计成带回来一个返回值来表示判断的年是闰年还是平年,那函数2里面怎么决定给month_day是赋值29还是28呢?这样,为了省事,那就把函数2要设计成函数本身需要返回值的这种状况,那就没必要人为非要给他设计成无返回值。

所以,原则上函数要设计成什么类型返回值,要不要设计成有返回值还是无返回值,完全是人为的,即使函数功能要返回值,但我就是把它设计成无返回值,又怕啥?对吧,反过来一样,函数就不需要返回值,但我就把它设计成有返回值,又怕啥?没关系的,但是,我们要顺其自然,做到顺应和谐,如果函数就需要一个返回值,那你就自然地给它设计成有返回值的,如果函数不要返回值,那就设计成无类型返回值得了!免得给自己找别扭,对吧!

那对应的,对函数调用的时候,本来无返回值函数调用很简单,看前面给你讲解的函数说明2的内容,那现在如果你把本来无需返回的函数设计成有了返回值类型,那按照正常的,有返回值是可以继续参与运算的,那你这个返回值并没有多大价值,没必要参与其他的运算,那我调用这个函数咋办?其实很简单,也像无返回值一样,直接写函数调用部分就行,不需要搞成参与运算的形式,那个返回值也自然丢弃了,没地儿用它!

我们没必要固执认为不是有返回值吗?返回这个值之后还得参加二次运算,所以,这是很灵活的,一定要理解!

其实,你再看,在函数3里面,调用了函数2,但是正好是放在if的结构里,你看到的调用正好就是没有显式参与比较的形式,如果你一定要看到函数返回值参与运算,那就写成is_leap_year(year_2)==1或者is_leap_year(year_2)!=0这种形式,那你就理解了参与运算了,只不过if结构里面特殊,简化了比较判断运算而已!

函数的返回值情况,可以分两种,一种是,函数功能就是要运算得出一个结果,比如,我给你三边,函数就可以给我得出一个三角形的面积,这个面积结果就正好能对应到为函数设计的返回值。第二种,还是这个三角形,我给你三边,但是我没有要让你求面积,而是问,是否可以构成一个三角形,那这个需要一个结果,可结果是啥?仅仅是一个“是”或者“不是”的逻辑结果,并没有规定要具体得到一个什么值,那怎么办?只能人为来定了,意思是你只要能正确表达出能构成三角形还是不能构成三角形的效果就行,那好,我说用1表示可构成,0表示不能构成,或者用字符Y表示能构成,N表示不能构成,那都是可以的,没关系!如果你思维还没开放,我说用8表示能构成,用5表示不能构成,可以吗,没关系,可以的!

那我们在设计函数的时候,到底设计成无返回值还是有返回值,那就有了参照了,你可以认为参考函数的功能需求就行,最后,你还要考虑下主调函数的需求,或者说主调函数需要用你这个被调函数返回的值,那你没有把被调函数设计成有返回值,那你要怎么解决这种矛盾!

2、函数的有参与无参

原则上,把函数设计成无参数,那就是说,函数本身把所有需要的都考虑了,不需要开放给主调函数给我传值或者传地址,也就是不需要外界干预,那没关系,你都解决了!省的主调函数为被调函数考虑传什么值了!

当然,函数设计成必须由主调函数给传一个值或者地址才能进行运算,那就需要把部分变量开放出来,设计成有参数的形式,这两种也是很灵活的,原则也都是人为的,你想设计成啥样的就设计成啥样的,当然,结合函数实际的功能需求更好!

好了,那你现在考虑考虑,是否可以把月历函数程序修改下,我不是设计的函数2和函数3都是有参数的嘛,那你能不能修改成不要参数,以及不要返回值等,看能不能还能实现月历打印!

但一个要求,函数必须设计成一个函数一个功能,不能再把多个功能设计在一个函数里!

  • 长安花有几种(从无人知晓到品牌效应)
  • 2024-07-05从无人知晓到品牌效应西部网讯(陕西广播电视台《今日点击》记者姚婧董超)几年前,提到花卉,西安市场几乎就是南方人独占天下可你知道吗?不知从何时起,这种现象已经发生了变化,长安花卉成了花卉市场的热门儿,周末闲暇去逛长安花卉市。
  • 知青往事逝去的恋情(他深爱上一位姑娘被父母拆散)
  • 2024-07-05他深爱上一位姑娘被父母拆散六十九岁的广州知青陈恩义是一位从税务部门退休的老干部,他曾在海南岛开荒种树当了十年的知青,一九七九年秋天才通过顶替接班回到了广州说起在海南岛的知青生涯,陈恩义说他最难忘的就是他的初恋,一位叫小梅的海南。
  • 演潘冬子的祝新运现在的情况(潘冬子祝新运12岁就家喻户晓)
  • 2024-07-05潘冬子祝新运12岁就家喻户晓十一临近,各大爱国影片轮番重播,勾起观众童年回忆讲述少年英雄“潘冬子”的电影《闪闪的红星》,即将迎来48岁生日“红星闪闪放光彩,红星灿灿暖胸怀”,如今依旧朗朗上口48年过去,“潘冬子”的扮演者祝新运,。
  • 书山有路勤为径笔耕不辍(书山有路勤为径)
  • 2024-07-05书山有路勤为径路温舒是西汉人从少年时代起,他就热爱学习,但是家里很穷,父亲又在外担任看守大门的工作,没有时间帮家里劳动他只好打消进学校读书的念头,每天赶着羊到野外去放牧在野外放羊,本来也可以读书可是,他没有书,也没。
  • 未断奶男人的危害(男的又不喂奶长)
  • 2024-07-05男的又不喂奶长最近,小编听刚生完宝宝的朋友“倒苦水”时,被其猝不及防灵魂一问:你成天做医学科普,你给我说下男的也不给孩子喂奶,干嘛要长两个毫无用处的咪咪?好吧,我明白她作为一个新手妈妈的苦恼!奶孩子奶烦了,估计是心。
  • 双色茉莉怎么让它开花多(养双色茉莉做好)
  • 2024-07-05养双色茉莉做好​双色茉莉又叫做鸳鸯茉莉,五色茉莉,属于茄科常绿矮生灌木植物,盆栽双色茉莉的一个枝条上,有的花苞先开,有的后开,颜色有变化,刚开花的时候是深蓝,大约开了两三天之后,深蓝色深紫色的花瓣就会变成洁白的颜色。
  • 一天总打嗝怎么办呢(南楠说科普没完没了的打嗝)
  • 2024-07-05南楠说科普没完没了的打嗝美食美酒,乃人生一大快事但是,很多人在大快朵颐之后难以避免出现“嗝”的困扰,不仅影响生活还略有不雅,该怎么办呢?首先需要了解的是,“打嗝”也分好几种一种为短促而有规律的“嗝、嗝”,伴有难以控制的上半身。
  • 珠宝销售技巧形象篇(教你销售高手的思维)
  • 2024-07-05教你销售高手的思维珠宝销售技巧:一旦男士没看上款式,或者他觉得价格贵了,就会跟你说考虑一下再转转……学员案例:有时候我总在想,销售到底是什么?以我现阶段的理解就是:把合适的产品推荐给合适的人产品和人怎样匹配才能合适,是。
  • 推荐四本男主独占欲很强的小说(几本草根崛起小说)
  • 2024-07-05几本草根崛起小说今天给老铁们带来几本草根崛起类型的小说,这些小说中的男主生于平凡寒门,却有着不甘平凡的精神他们通过努力,成就人生巅峰,因此故事看点颇多,完本连载都有,希望大家喜欢:《寒门崛起》作者:朱郎才尽类型:历史。
  • 鹌鹑和什么放一起炖好吃(春节一味大年初二吃点啥)
  • 2024-07-05春节一味大年初二吃点啥文/羊城晚报全媒体记者薛仁政通讯员王雯玉图/受访者提供大年初二,在年俗中是出嫁的女儿带丈夫、儿女回娘家拜年的日子这一天,也称为开年在中药中,有一味药的名字同这一年俗颇有联系,即“知母”据《本草纲目》记。
  • 雪花秀滋阴乳液哪款好(口碑超高的5款大牌)
  • 2024-07-05口碑超高的5款大牌乳液是每天都要用到的基本护肤品,选一款适合自己的乳液,能够更好的滋养肌肤如今市面上乳液产品也是五花八门,究竟哪些更值得入手呢?本期潮流Lady就给大家分享口碑超高的5款大牌“乳液”:希思黎吃土也要买,。
  • 电诈涉案100万(涉案资金近五千万)
  • 2024-07-05涉案资金近五千万“跑分”一词,在电信网络诈骗犯罪分子口中可不是用某大师为电脑评测性能的意思,所谓“跑分”,其实就是洗钱,是指利用银行账户或支付账户帮助不法分子转移资金,从中赚取佣金,致使大量涉诈资金流向境外的一种违法。