Bird
Raised Fist0
C++programming~10 mins

Function calling in C++ - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Function calling
Start main()
↓
Call function foo()
↓
Execute foo() body
↓
Return from foo()
↓
Continue main()
↓
End main()
The program starts in main(), calls a function, executes it, returns, then continues main() until it ends.
Execution Sample
C++
int foo() {
    return 42;
}

int main() {
    int x = foo();
    return 0;
}
Calls function foo() from main(), assigns its return value to x.
Execution Table
StepActionFunctionVariable StateOutput/Return
1Start main()mainx: uninitializednone
2Call foo()main -> foox: uninitializednone
3Execute foo() bodyfoononereturn 42
4Return from foo()foo -> mainx: uninitialized42
5Continue main()mainx: 42none
6End main()mainx: 42program ends
💡 main() ends after calling foo() and assigning its return value to x
Variable Tracker
VariableStartAfter Step 4Final
xuninitializeduninitialized42
Key Moments - 3 Insights
Why does the program jump to foo() when main() calls it?
When main() calls foo() (see Step 2), the program pauses main() and starts executing foo() (Step 3). This is how function calls work: control moves to the called function.
How does the value 42 get assigned to x in main()?
foo() returns 42 at Step 3, then at Step 4 main() receives this value and assigns it to x. The return value passes back to the caller.
What happens after foo() finishes?
After foo() returns (Step 4), control goes back to main() (Step 5) and continues executing the rest of main() until it ends.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of x immediately after Step 4?
A0
B42
Cuninitialized
Dnone
💡 Hint
Check the 'Variable State' column at Step 4 in the execution_table.
At which step does the program start executing the body of foo()?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Look at the 'Action' and 'Function' columns in the execution_table.
If foo() returned 100 instead of 42, what would be the value of x after Step 4?
A100
B42
Cuninitialized
D0
💡 Hint
Refer to the 'Variable State' column and understand that x gets the return value from foo().
Concept Snapshot
Function calling in C++:
- Use functionName() to call a function.
- Control jumps to the called function.
- The function runs its code and returns a value.
- The caller receives the return value and continues.
- Variables can store returned values.
Full Transcript
This example shows how a function is called in C++. The program starts in main(), then calls foo(). Control moves to foo(), which executes and returns 42. The return value is assigned to variable x in main(). Then main() continues and ends. The execution table traces each step, showing variable states and function transitions. Key moments clarify why control jumps and how return values work. The quiz tests understanding of variable values and execution steps.

Practice

(1/5)
1. What does calling a function in C++ do?
easy
A. Runs the code inside the function
B. Deletes the function
C. Creates a new function
D. Changes the function name

Solution

  1. Step 1: Understand what a function call means

    Calling a function means telling the program to run the code inside that function.
  2. Step 2: Identify the effect of calling a function

    When called, the function's instructions execute, performing its task.
  3. Final Answer:

    Runs the code inside the function -> Option A
  4. Quick Check:

    Function call = run function code [OK]
Hint: Function call runs its code block immediately [OK]
Common Mistakes:
  • Thinking calling creates or deletes functions
  • Confusing function call with function definition
  • Assuming function call changes function name
2. Which of the following is the correct way to call a function named printMessage in C++?
easy
A. printMessage();
B. printMessage;
C. call printMessage();
D. function printMessage();

Solution

  1. Step 1: Recall the syntax for calling a function

    In C++, to call a function, write its name followed by parentheses and a semicolon.
  2. Step 2: Check each option

    printMessage(); uses the correct syntax: printMessage();. Others are incorrect or invalid syntax.
  3. Final Answer:

    printMessage(); -> Option A
  4. Quick Check:

    Function call syntax = name + () + ; [OK]
Hint: Function calls always end with parentheses and semicolon [OK]
Common Mistakes:
  • Omitting parentheses when calling functions
  • Adding keywords like 'call' or 'function' incorrectly
  • Missing semicolon at the end
3. What is the output of this C++ code?
void greet() {
    std::cout << "Hello!" << std::endl;
}

int main() {
    greet();
    return 0;
}
medium
A. Compilation error
B. greet()
C. No output
D. Hello!

Solution

  1. Step 1: Understand what the function greet() does

    The function prints "Hello!" followed by a new line.
  2. Step 2: See what main() does

    Main calls greet(), so "Hello!" is printed to the screen.
  3. Final Answer:

    Hello! -> Option D
  4. Quick Check:

    Function call prints "Hello!" [OK]
Hint: Function call runs its print statements [OK]
Common Mistakes:
  • Expecting function name printed instead of output
  • Thinking no output because no return value
  • Assuming compilation error without syntax issues
4. Identify the error in this code snippet:
void sayHi() {
    std::cout << "Hi!" << std::endl;
}

int main() {
    sayHi;
    return 0;
}
medium
A. Function sayHi is not defined
B. Missing parentheses when calling sayHi
C. Missing semicolon after sayHi
D. Incorrect return type in main

Solution

  1. Step 1: Check how sayHi is called

    In main(), sayHi is written without parentheses, so it is not called.
  2. Step 2: Understand correct function call syntax

    To call sayHi, it must be sayHi(); with parentheses.
  3. Final Answer:

    Missing parentheses when calling sayHi -> Option B
  4. Quick Check:

    Function call needs parentheses [OK]
Hint: Always use () to call a function [OK]
Common Mistakes:
  • Forgetting parentheses on function calls
  • Thinking function name alone calls it
  • Ignoring compiler errors about function usage
5. Given this function:
int add(int a, int b) {
    return a + b;
}

What is the correct way to call add to get the sum of 5 and 3 and store it in result?
hard
A. int result = add(5 + 3);
B. int result = add(5);
C. int result = add(5, 3);
D. int result = add();

Solution

  1. Step 1: Check the function parameters

    The function add requires two integers as input: a and b.
  2. Step 2: Match the call with two arguments

    int result = add(5, 3); passes both 5 and 3 correctly. Others pass wrong number or format of arguments.
  3. Final Answer:

    int result = add(5, 3); -> Option C
  4. Quick Check:

    Function call needs correct number of arguments [OK]
Hint: Match function parameters count exactly when calling [OK]
Common Mistakes:
  • Passing fewer or more arguments than function needs
  • Passing expressions without commas for multiple args
  • Calling function without any arguments when required
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard