So an important part of understanding functions, is the use of the return statement. A return statement is a flow of control keyword return, and we've already seen it. We've seen it right from the get-go with our first programs where we always say at the end of main returns of zero, this convention. It can be not used, but it's better style to use it explicitly. So at the end of a function in main, what it's meaning is that main returns of value zero, but where does return it to? Main is the program that you're executing, it returns it to the operating system, and it's used by the operating system sometimes to figure out whether if there was an error in the program. So return of zero means the program finished in an expected or orderly way, a normal exit. The syntax of the return statement is either its return semicolon, no expression return of semicolon, or its return of an expression semicolon. Here are three simple examples, the return of semi-colon, return of zero, return of the expression a plus b. Notice, I did not need to parenthesize this, but by parenthesizing that made it clearer. So I could just as well I have written zero. I could have parenthesized even as simple integer constant like zero. So people generally when they're returning expression even if they don't need to, because of clarity stylistically they do use parenthesization. Let's see a simple use in a function. Here's a function, self-explanatory I've called it cube. It means that I'll take a value which is a double, I'll multiply it three times, so I get the cube of the past in parameter x. So double is what's returned, that's the appropriate value. If these do not line up, if this expression is not double then there's going to be some conversion. Conversion rules can be messy and complicated and generally want to avoid conversions, but we will expect a conversion. How can it be used? We can call it, like a is replaced by the cube of 3.5. So internally this gets computed three, that's 3.5 times 3.5 times 2.5, and that is the value returned to a. Notice by the way, just to make that last point clear, if I had said a as returned q of 3, what actually happens is three is an int converts to double and a ends up being the double 27.0 not the integer 27. That's return, return is fairly simple.