A pointer parameter lets a function update a variable owned by its caller.

Pointer Parameters

pointer_parameters.c
#include <stdio.h>

void addOne(int *value) {
    *value = *value + 1;
}

int main(void) {
    int value = ;

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

void addOne(int *value) {
    *value = *value + 1;
}

int main(void) {
    int value = ;

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

void addOne(int *value) {
    *value = *value + 1;
}

int main(void) {
    int value = ;

    addOne(&value);
    printf("value=%d\n", value);
    return 0;
}
address `&value` passes the address of the caller's variable.
dereference `*value` accesses the variable through the pointer.