C passes function arguments by value, so a parameter receives a copy.

Pass By Value

pass_by_value.c
#include <stdio.h>

void addOne(int value) {
    value++;
    printf("inside=%d\n", value);
}

int main(void) {
    int original = ;

    addOne(original);
    printf("after=%d\n", original);
    return 0;
}
#include <stdio.h>

void addOne(int value) {
    value++;
    printf("inside=%d\n", value);
}

int main(void) {
    int original = ;

    addOne(original);
    printf("after=%d\n", original);
    return 0;
}
#include <stdio.h>

void addOne(int value) {
    value++;
    printf("inside=%d\n", value);
}

int main(void) {
    int original = ;

    addOne(original);
    printf("after=%d\n", original);
    return 0;
}
copy Changing a parameter does not change the caller's variable.
argument The argument value is copied into the parameter when the function is called.