震惊!!!return 语句居然是这样的

简介: 震惊!!!return 语句居然是这样的

在函数的设计中,函数中经常会出现return语句,这里讲一下return语句的使用注意事项。

注意事项

  1. return后面可以是一个数值,也可以是一个表达式,如果是表达式则先执行表达式,再返回表达式的结果。
  2. return后边也可以什么都没有,直接写return;这种写法适合函数返回类型是void的情况。
  3. return返回的值和函数返回类型不一致,系统会自动将返回的值隐式转化为函数的返回类型。
  4. return语句执行后,函数就彻底返回,后边的代码不再执行。(该处有点像break,但它不能用于自定义函数,而是用于switch语句和循环语句)
  5. 如果函数中存在if等分支语句,则要保证每种情况下都有return返回,否则出现编译错误。

接下来,进行举例


1.的举例

#include<stdio.h>
int Add(int x, int y)
{
    return  x + y;//这里就是先执行表达式,再返回表达式的结果
}
int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    int r = Add(a, b);//调用加法Add函数,求和的结果放在r中
    printf("%d", r);
}
#include<stdio.h>
int Add(int x, int y)
{
    int z = x + y;
    return z;
}
int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    int r = Add(a, b);//调用加法Add函数,求和的结果放在r中
    printf("%d", r);
}

2,4的举例

计算从1-n的和

//计算从1-n的和
#include<stdio.h>
void test(int n)//void表明函数返回类型是空  //该处是定义函数
{
  if (n <= 0)
    return;//若执行该语句,后边代码不执行,则验证注意事项4;return后面什么也没有,验证v注意事项2
  int i = 0;
  int sum = 0;
  for (i = 1; i <= n; i++)
  {
    sum += i;
  }
  printf("%d\n", sum);
}
int main()
{
  int n;
  scanf("%d", &n);
  test(n);//自定义函数
  return 0;
}

  81112d9171dc4e4ca9b08ae924b6846b.png

输入-1,执行return语句,程序结束。输入5,跳过if语句,执行for循环。(不清楚自定义函数的可以看博主的这个文章https://blog.csdn.net/wait___wait/article/details/135047014

点击链接就可以观看啦,里面也介绍了参数,这两篇文章一起看,就会有更好的了解哦☺☺

3.的举例

#include<stdio.h>
int test()//由于实参为空,所以形参也为空
{
  return 3.14;
}//函数返回类型为整型,所以3.14强制转换为3
int main()
{
  int r = test();//实参
  printf("%d\n", r);//打印3
  return 0;
}

5.的举例

#include<stdio.h>
//判断一个数是能不能被2整除(即一个正整数n是不是偶数)
//不能被2整除则返回1
//能被2整除则返回0
int test(int n)
{
  if (n % 2 == 1)
    return 1;
  else
    return 0;
}
int main()
{
  int n = 0;
  scanf("%d", &n);
  int ret = test(n);
  printf("%d", ret);
  return 0;
}//输入3,返回1,即打印1

若注释掉return 1;则违反了注意事项5,出现报错“不是所有的控制路径都有返回值”

(已经看到这里了,不如点个赞,和关注再离开吧☼☺,这是对我最大的鼓励)


目录
相关文章
|
Linux
软件包管理工具 - rpm
【1月更文挑战第16天】
447 0
|
机器学习/深度学习 人工智能 TensorFlow
利用深度学习实现图像风格迁移
【8月更文挑战第73天】本文通过深入浅出的方式,介绍了一种使用深度学习技术进行图像风格迁移的方法。我们将探讨如何将一张普通照片转化为具有著名画作风格的艺术作品。文章不仅解释了背后的技术原理,还提供了一个实际的代码示例,帮助读者理解如何实现这一过程。
|
存储 数据库 云计算
云计算的基本概念
云计算的基本概念
1465 2
|
安全 网络安全 开发者
2024 全网热门的服务器面板测评推荐
在当今数字化时代,服务器管理的效率和便捷性对于企业和开发者来说至关重要。服务器面板作为服务器管理的得力助手,能够极大地简化操作流程,提高管理效能。本
2024 全网热门的服务器面板测评推荐
|
机器学习/深度学习 人工智能 自然语言处理
当前AI大模型在软件开发中的创新应用与挑战
【10月更文挑战第31天】2024年,AI大模型在软件开发领域的应用取得了显著进展,从自动化代码生成、智能代码审查到智能化测试,极大地提升了开发效率和代码质量。然而,技术挑战、伦理与安全问题以及模型可解释性仍是亟待解决的关键问题。开发者需不断学习和适应,以充分利用AI的优势。
|
存储 算法 开发工具
Git 作为最流行的分布式版本控制系统之一
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
260 3
|
传感器 人工智能 数据挖掘
柔性电子器件:未来可穿戴技术的趋势
【9月更文挑战第30天】柔性电子器件是一种将电子元件集成在柔性基板上的新兴技术,具备出色的灵活性和适应性。本文探讨了其定义、发展历程及关键技术,并展望了其在可穿戴设备中的应用前景。柔性电子器件不仅能够实时监测生理信号,还能实现自然图像显示和持久能量供应,推动医疗健康、智能手表等领域的发展。尽管面临制造成本和耐久性等挑战,其市场潜力巨大,预计到2025年将达到340亿美元,引领智能穿戴技术的新时代。
|
数据挖掘 Python
四分位距方法
四分位距方法
|
Python
Python中的r字符串前缀及其用法详解
Python的r字符串前缀用于创建原始字符串,不解析转义字符。在处理文件路径、正则表达式和特殊字符时特别有用。例如,`r&#39;C:\path&#39;`会保持反斜杠原样,而`&#39;\n&#39;`会被解释为换行。r字符串前缀不能用于变量或表达式,且仅影响字符串本身。了解这一特性有助于编写更清晰、准确的代码。
1256 0
|
缓存 计算机视觉
Matlab安装下载的工具箱
Matlab安装下载的工具箱
425 0