1. Functions allow programmers to organize code into reusable blocks that perform specific tasks. A function contains a block of code that is executed when the function is called.
2. Functions have a declaration, definition, and call. The declaration specifies the function name and parameters. The definition contains the code that is executed. The call transfers program control to the function.
3. Functions can be categorized based on whether they have parameters and return values. They can also be called by value, where the parameter value is copied, or by reference, where the memory address is used.