Functions can be thought of as mini-factories, taking raw materials and transforming them into various products. Similarly, functions process input data. The input for a function is termed as arguments or parameters.

Recalling the structure of a function:

arguments_placeholder is the spot where you list the function's arguments.

As an example, we'll design a function to convert degrees to radians:




Imagine a function call as a portal into a separate, self-contained realm where specific actions take place. Objects birthed in this realm exist solely there, and once the realm ceases to exist, so do they.

For instance, if we declare a variable inside a function, it remains inaccessible from outside that function. The sole piece of information we can extract from a function's execution is what we retrieve using the return statement.


Functions can take a variety of arguments: basic data types (like int, char, double), arrays/strings, pointers (teaser!), and even other functions.

It's also important to note that the names of the arguments within the function might differ from the actual data you're passing into it.

The variable int inputVar lives only within the scope of the function, acting as a placeholder for the data we want to feed into the function. However, the data types of both the arguments and the actual data passed to the function must align.

Now, let's script a function that pinpoints the largest element in an array:



Here's the algorithm:

  1. Pass the array into the function;
  2. The function labels any chosen array element as "max" (regardless of its actual value);
  3. A loop within the function then examines every element, contrasting it with "max";
  4. If any new element is bigger than "max", then that element takes the "max" title.

Everything was clear?

Section 5. Chapter 3