A structured lesson workspace with readable content, hands-on examples, and a clean path to completion.
A parameter is the variable in the function declaration. An argument is the value passed at the call site. In void foo(int x), x is a parameter. In foo(42), 42 is an argument. The distinction is not pedantry. It matters in documentation ("this parameter must be non-negative"), in error messages ("argument type mismatch"), and in code review ("the function has three parameters but you passed four arguments"). Using the terms correctly makes your communication precise.
#include <stdio.h>void print_sum(int a, int b) {printf("%d + %d = %d\n", a, b, a + b);}int main(void) {int x = 3;int y = 7;print_sum(x, y);print_sum(10, 20);print_sum(x + y, 100);return 0;}
a and b are parameters. They exist in the function's scope. x, y, 10, 20, x+y, and 100 are arguments. They are evaluated in the caller's scope and their values are copied into the parameters. The parameters are local variables initialized with the argument values. This is pass-by-value: the function gets copies, not the originals.
Parameters are the receiving variables. Arguments are the passed values. The terms are not interchangeable. Use them correctly in documentation, in reviews, and in conversations. Precision in language prevents ambiguity in code. Next: declaring one variable per line, a style rule that prevents a specific class of pointer declaration bugs.
Finish the lesson once you have worked through the material. This awards ★ 10 XP.