C语言函数返回值详解

函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过 return 语句返回。

return 语句的一般形式为:

return 表达式;

或者:

return (表达式);

有没有( )都是正确的,为了简明,一般也不写( )。例如:

return max;
return a+b;
return (100+200);

C语言返回值

1 . 没有返回值的函数为空类型,用void表示。例如:

void func(){printf("http://www.baidu.com\n");
}

一旦函数的返回值类型被定义为 void,就不能再接收它的值了。例如,下面的语句是错误的:

int a = func();

为了使程序有良好的可读性并减少出错, 凡不要求返回值的函数都应定义为 void 类型。

2 . return 语句可以有多个,可以出现在函数体的任意位置,但是每次调用函数只能有一个 return 语句被执行,所以只有一个返回值。

示例

//返回两个整数中较大的一个
int max(int a, int b){if(a > b){return a;}else{return b;}
}

如果a>b成立,就执行return a,return b不会执行;如果不成立,就执行return b,return a不会执行。

3 . 函数一旦遇到 return 语句就立即返回,后面的所有语句都不会被执行到了。return 语句还有强制结束函数执行的作用。

示例

//返回两个整数中较大的一个
int max(int a, int b){return (a>b) ? a : b;printf("Function is performed\n");
}

第 4 行代码则永远不会被执行。

我们定义了一个判断素数的函数,这个例子更加实用:

#include <stdio.h>int prime(int n){int is_prime = 1, i;//n一旦小于0就不符合条件,就没必要执行后面的代码了,所以提前结束函数if(n < 0){ return -1; }for(i=2; i<n; i++){if(n % i == 0){is_prime = 0;break;}}return is_prime;
}int main(){int num, is_prime;scanf("%d", &num);is_prime = prime(num);if(is_prime < 0){printf("%d is a illegal number.\n", num);}else if(is_prime > 0){printf("%d is a prime number.\n", num);}else{printf("%d is not a prime number.\n", num);}return 0;
}

prime() 是一个用来求素数的函数。素数是自然数,它的值大于等于零,一旦传递给 prime() 的值小于零就没有意义了,就无法判断是否是素数了,所以一旦检测到参数 n 的值小于 0,就使用 return 语句提前结束函数。

return 语句是提前结束函数的唯一办法。return 后面可以跟一份数据,表示将这份数据返回到函数外面;return 后面也可以不跟任何数据,表示什么也不返回,仅仅用来结束函数。

我们让 return 后面不跟任何数据:

#include <stdio.h>void prime(int n){int is_prime = 1, i;if(n < 0){printf("%d is a illegal number.\n", n);return;  //return后面不带任何数据}for(i=2; i<n; i++){if(n % i == 0){is_prime = 0;break;}}if(is_prime > 0){printf("%d is a prime number.\n", n);}else{printf("%d is not a prime number.\n", n);}
}int main(){int num;scanf("%d", &num);prime(num);return 0;
}

prime() 的返回值是 void,return 后面不能带任何数据,直接写分号即可。

扫一扫获取更多资讯哟!!!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习之线性回归(python)

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法&#xff08;least square method&#xff09;求解&#xff1a; 4. 评估回归模型 四、sklearn中…

C语言函数的调用

函数调用&#xff08;Function Call&#xff09;&#xff0c;就是使用已经定义好的函数。 函数调用的一般形式为&#xff1a; functionName(param1, param2, param3 ...);functionName 是函数名称&#xff0c;param1, param2, param3 …是实参列表。实参可以是常数、变量、表…

机器学习之线性回归(matlab)

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法&#xff08;least square method&#xff09;求解&#xff1a; 4. 评估回归模型 四、regress线…

C语言函数声明以及函数原型

C语言代码由上到下依次执行&#xff0c;原则上函数定义要出现在函数调用之前&#xff0c;否则就会报错。但在实际开发中&#xff0c;经常会在函数定义之前使用它们&#xff0c;这个时候就需要提前声明。 函数声明&#xff08;Declaration&#xff09;&#xff0c;就是告诉编译…

python(20)之读写文件

目录 读写文件 1.简单介绍 2.从文件中读取单行数据 3.从文件中读取多行 4.把 string&#xff08;字符串&#xff09; 的内容写入文件 5.写入其他类型的对象 本节知识总结 mode 参数 file 对象 读写文件 1.简单介绍 最常用的参数有两个: open(filename, mode) f op…

C语言全局变量和局部变量深入

局部变量 定义在函数内部的变量称为局部变量&#xff08;Local Variable&#xff09;&#xff0c;它的作用域仅限于函数内部&#xff0c; 离开该函数后就是无效的&#xff0c;再使用就会报错。 示例 int f1(int a){int b,c; //a,b,c仅在函数f1()内有效return abc; } int ma…

python实例之 67,68

目录 67.题目&#xff1a;输入数组&#xff0c;最大的与第一个元素交换&#xff0c;最小的与最后一个元素交换&#xff0c;输出数组。 68.题目&#xff1a;有 n 个整数&#xff0c;使其前面各数顺序向后移 m 个位置&#xff0c;最后 m 个数变成最前面的 m 个数 今天这个不知道…

C语言块级变量

代码块&#xff0c;就是由{ }包围起来的代码。代码块在C语言中随处可见&#xff0c;例如函数体、选择结构、循环结构等。不包含代码块的C语言程序根本不能运行&#xff0c;即使最简单的C语言程序也要包含代码块。 C语言允许在代码块内部定义变量&#xff0c;这样的变量具有块级…

python实例 69,70

69.题目&#xff1a;有n个人围成一圈&#xff0c;顺序排号。从第一个人开始报数&#xff08;从1到3报数&#xff09;&#xff0c;凡报到3的人退出圈子&#xff0c;问最后留下的是原来第几号的那位。 先看一下第一种实现方式 nmax 50 n int(input(请输入总人数:)) num [] f…

C语言递归调用

一个函数在它的函数体内调用它自身称为递归调用&#xff0c;这种函数称为递归函数。执行递归函数将反复调用其自身&#xff0c;每调用一次就进入新的一层&#xff0c;当最内层的函数执行完毕后&#xff0c;再一层一层地由里到外退出。 递归函数不是C语言的专利&#xff0c;Java…

python实例 71,72

目录 71.编写input()和output()函数输入&#xff0c;输出5个学生的数据记录。 72.题目&#xff1a;创建一个列表。 71.编写input()和output()函数输入&#xff0c;输出5个学生的数据记录。 #71 N 3 #stu # num : string # name : string # score[4]: list student [] for i…

Dev-C++ 常用快捷键大全

最近开始用Dev-C在Window下编程&#xff0c;感觉Dec-C是一款挺不错的C编译器。我总结了一些使用技巧。 Dev-C 的一些常用快捷键 恢复 CtrlZ 重做 CtrlY 剪切 CtrlX 拷贝 CtrlC 粘贴 CtrlV 搜索替换内容 CtrlF 选择全部 CtrlA 编译 F9 运行 F10 编译运行 F11 设置注释 Ctrl/…

python实例 73,74

目录 73.题目&#xff1a;反向输出一个链表。 74.题目&#xff1a;列表排序及连接。 73.题目&#xff1a;反向输出一个链表。 #73 ptr [] for i in range(5):num int(input(请输入一个数字:))ptr.append(num) print (输入原顺序列表,ptr) ptr.reverse() print (输入反顺序…

C语言简单计算器

用C语言实现简单的计算器功能。 简单计算器&#xff0c;实现简单的加减乘除功能&#xff0c;选择对应的运算符输出运算符对应的编号&#xff0c;然后输入我们要计算的两个数&#xff0c;程序会给出计算结果。 效果演示 简单计算器代码 /* 简单计算器 name:zsh */ #include…

python实例 75,76

目录 75.判断情人节 76. 题目&#xff1a;编写一个函数&#xff0c;输入n为偶数时&#xff0c;调用函数求1/21/4...1/n,当输入n为奇数时&#xff0c;调用函数1/11/3...1/n 75.判断情人节 #75 import timeif __name____main__:datetime.strftime(%m-%d,time.localtime())if d…

python实例 77,78

目录 77.题目&#xff1a;循环输出列表 78.找到年龄最大的人&#xff0c;并输出。 77.题目&#xff1a;循环输出列表 #77 s ["man","woman","girl","boy","sister"] for i in s:print(i) 返回&#xff1a; 或者是 s …

python实例 79,80

目录 79.字符串排序 80.猴子分桃 79.字符串排序 #79 list1[] str1input(请输入第一个字符串&#xff1a;) str2input(请输入第二个字符串&#xff1a;) str3input(请输入第三个字符串&#xff1a;) list1.extend([str1,str2,str3]) list1.sort() print (排序后的字符串为&am…

C语言带参数的宏定义

C语言允许宏带有参数。在宏定义中的参数称为“形式参数”&#xff0c;在宏调用中的参数称为“实际参数”&#xff0c;这点和函数有些类似。 对带参数的宏&#xff0c;在展开过程中不仅要进行字符串替换&#xff0c;还要用实参去替换形参。 带参宏定义的一般形式为&#xff1a…

python实例 81,82

目录 81.题目&#xff1a;809*??800*??9*?? 其中??代表的两位数, 809*??为四位数&#xff0c;8*??的结果为两位数&#xff0c;9*??的结果为3位数。求??代表的两位数&#xff0c;及809*??后的结果。 82.题目&#xff1a;八进制转换为十进制 81.题目&#xf…

C语言带参宏定义和函数的区别

带参数的宏和函数区别&#xff1a; 宏展开仅仅是字符串的替换&#xff0c;不会对表达式进行计算&#xff1b;宏在编译之前就被处理掉了&#xff0c;它没有机会参与编译&#xff0c;也不会占用内存。而函数是一段可以重复使用的代码&#xff0c;会被编译&#xff0c;会给它分配内…