C语言 return 语句

函数的返回值类型是在定义函数时指定的

函数可以有返回值也可以没有返回值

作用

用来返回值并退出函数,退出之后就不会继续执行,即return之后的语句都不会运行,但是如果在if中,就需要看他是否执行。

省略

以return关键字开始,后面是待返回的值,并以分号结尾。如果遗漏main()函数中的return语句,程序在运行至最外面的右花括号时会返回0。因此,可以省略main()函数中的return语句,但是不要在其他有返回值的函数中遗漏它。

没有返回值的函数

功能只是完成一个操作,应将返回值类型定义为void,函数体内可没有return语句

有返回值的函数

函数的最后会有一个返回值return,可以用来获取该函数执行结果返回给该函数,让外部调用该函数,返回值可以指定,如果不指定,默认返回值None。

函数的返回值类型是在定义函数时指定的。return语句中表达式的类型应与定义函数时指定的返回值类型一致,如果不一致,则以函数定义时返回值类型为准,对return语句中表达式的类型自动进行转换,然后再将它返回给主调函数使用。

在调用函数时,如果需要从被调函数返回一个值供主调函数使用,那么返回值类型必须定义成非void型,此时被调函数中必须包含return语句,而且return后面必须要有返回值,否则就是语法错误。

一个函数中可以有多个return语句,但并不是所有的return语句都起作用,执行到哪个return语句,就是哪个return语句起作用,该return语句后的其他语句都不会执行。

return工作原理

被调函数运行结束后才会返回主调函数,但是被调函数运行结束后系统为被调函数中的局部变量分配的内存空间就会被释放。也就是说,return 返回的那个值在被调函数运行一结束就被释放掉了,那么它是怎么返回给主调函数的呢?

事实上在执行 return 语句时系统是在内部自动创建了一个临时变量,然后将 return 要返回的那个值赋给这个临时变量。所以当被调函数运行结束后, return 后面的返回值真的就被释放掉了,最后是通过这个临时变量将值返回给主调函数的。而且定义函数时指定的返回值类型实际上指定的就是这个临时变量的类型。

这也是为什么当 return 语句中表达式的类型和函数返回值类型不一致时,将 return 的类型转换成函数返回值类型的原因。return 语句实际上就是将其后的值赋给临时变量,所以它要以临时变量的类型为准,即函数返回值的类型。

返回值的形式

返回值不一定是变量的值,也可以是任意表达式的值

return (n

返回值不仅可以赋给变量,也可以被用作表达式的一部分。

你可能感兴趣的:(C语言,c语言)