Functions allow programmers to organize code into reusable blocks. A function is defined with a return type, name, parameters, and body. Functions can return values and accept arguments. Arguments are passed by value by default, meaning changes inside the function don't affect the original arguments. Functions are called by name and passing any required arguments. Functions improve code organization and reuse.