关于一道习题存在疑问

img

img


为什么上面的图片void swap可以没有返回值而void sum要有返回值呢?

一个变量有它本身的数值(实参)和这个变量在内存中存储的地址。
在设计函数方法时要考虑功能, swap是做两个数交换,输入参数是要交换的值的地址(形参),不需要返回,方法内通过交换指针的方式直接交换原始数据的指向位置。
而sum方法是求和,根据输入参数求和,方法调用得到的结果,就需要使用返回值来进行传递值(实参)

img


这是给的解答,想问第一个解答的原因

【以下回答由 GPT 生成】

在C语言中,函数可以有不同的返回类型,包括void(即无返回值)。具体来说,有以下几点可以解释为什么swap函数可以没有返回值,而sum函数需要有返回值:

  1. swap函数的目的是交换两个整数的值,直接通过指针传参进行交换,不需要返回值。在函数内部,通过指针操作实现了对原变量的修改。

  2. sum函数的目的是计算出区间[a, b]内所有整数的和。由于函数的调用者需要使用计算结果,所以sum函数需要通过返回值将计算结果返回。返回值可以是任何数据类型,这里设定为int类型。

综上所述,swap函数可以没有返回值,而sum函数需要有返回值。如果你在写代码时对返回类型有疑问,可以考虑函数的实际需求,是否需要通过返回值来提供某种信息或结果给调用者使用。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^