c语言对函数的认识(C语言自学函数说明4)
c语言对函数的认识(C语言自学函数说明4)
2024-09-29 04:43:25  作者:狠狠想迩  网址:https://m.xinb2b.cn/know/zhr450516.html

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

比如,对于月历程序


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

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


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

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

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

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


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


函数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-09-29悲伤的名字精选失望让我堕落青春如此浪荡伪装的坚强i难以启齿的痛心痛像条线巴黎彼岸°破碎一刹那的疼痛错乱的人生情深不及久伴i.谈爱不谈情发了疯的思念当恨能成忧不曾记得你的好那么多的悲伤安静的、角落终有弱水替沧海梦毁千。
  • 顺治皇帝活了72岁(康熙死亡之谜)
  • 2024-09-29康熙死亡之谜爱新觉罗·玄烨(1654年5月4日—1722年12月20日),即清圣祖,年号康熙,为清朝第四位皇帝,清定都北京后第二位皇帝蒙古人称康熙为恩赫阿木古朗汗或阿木古朗汗,西藏尊称为“文殊皇帝”顺治帝第三子,。
  • 蓝牙耳机自己降噪(蓝牙耳机是如何降噪的)
  • 2024-09-29蓝牙耳机是如何降噪的蓝牙耳机是如何降噪的?聚焦电子工程师,专注电子工程技术大家好,这里是电巢这篇文章我们将讨论蓝牙耳机的降噪原理,话不多说,开始吧!主动降噪是蓝牙耳机的一项令人着迷的功能,它有一些复杂的工程,这样耳机才能。
  • 萨尔马特洲际导弹有多牛(全球最强导弹萨尔马特)
  • 2024-09-29全球最强导弹萨尔马特随着岁月的流逝,中华儿女自强不息,开始努力建设国家历经七十多年,我国在各个领域得到了突飞猛进的发展,近年来,有句话流传于全国人民之间,并且深深地印刻在我们的心中,那就是犯我中华者,虽远必诛,我们之所以。
  • rpg游戏制作软件有哪些 游戏制作工具RPGDeveloperBakinSteam发售
  • 2024-09-29rpg游戏制作软件有哪些 游戏制作工具RPGDeveloperBakinSteam发售一款优秀的游戏制作工具《RPGDeveloperBakin》抢先测试版于10月18日今天Steam发售,收费DLC西部剧以及现代都市也同时发售,暂不支持中文,感兴趣的玩家可以关注下了•《RPGDeve。
  • 柠檬虾的做法简单版(私房柠檬虾的家常做法)
  • 2024-09-29私房柠檬虾的家常做法食材用料:虾300g调味辅助:油适量,盐适量,柠檬半个,米酒半勺,生抽1勺,玫瑰醋,半勺蒜头适量,姜适量,红辣椒适量食谱做法:1.明虾切去头,开背,洗干净2.切一瓣蒜头,姜切块,辣椒切条(用来增加美观。
  • 张卫健演过几部《西游记》啊
  • 2024-09-29张卫健演过几部《西游记》啊1、TVB出了三部西游记,西游记I,西游记II与齐天大圣孙悟空,齐天大圣孙悟空这部电视剧纯属恶搞名著2、张卫健出演了西游记I与齐天大圣孙悟空,西游记II由陈浩民接替张卫健饰演猴子3、第一部当然没演完~。
  • 使用过的纸巾属于什么垃圾(用过的纸巾应该是什么垃圾)
  • 2024-09-29用过的纸巾应该是什么垃圾用过的卫生纸是干垃圾因为用过的卫生纸属于污染纸张,是不能回收的干垃圾,即其它垃圾,是指除可回收物、有害垃圾、湿垃圾以外的其它生活废弃物干垃圾的投放,应尽量沥干水分,难以辨识类别的生活垃圾投入干垃圾容器。
  • 寺庙里的古迹(一座寺庙是一个城市很重要的人文资源)
  • 2024-09-29一座寺庙是一个城市很重要的人文资源一座寺庙是一个城市很重要的人文资源,从旅游业的角度说,很多寺庙由于发展情况不同,但人气却很高,随着旅游业持续表现上来看,很多寺庙景点也都显得很突出了,因而会较好地提升其景观的发展动力了因而从目前的城市。
  • 高端igbt是一个很重要的分支(一文看懂IGBT)
  • 2024-09-29一文看懂IGBTIGBT(绝缘栅双极型晶体管),是由BJT(双极结型晶体三极管)和MOS(绝缘栅型场效应管)组成的复合全控型-电压驱动式-功率半导体器件,其具有自关断的特征简单讲,是一个非通即断的开关,IGBT没有放。
  • polish单词快速记忆(学会15个Singlish单词成为地道Singlish用者)
  • 2024-09-29学会15个Singlish单词成为地道Singlish用者Singlish(新加坡式英语)不仅在新加坡家喻户晓,而且已经入选牛津大辞典除了那些大家都知道的特有后缀词”lah”“lor”“leh”等和独特的文法之外,其实还有些词在英美英语里的意思,和新加坡式英。