The dereference operator * reads or writes the object a pointer points to.

Dereference

dereference.cpp
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
#include <iostream>

int main() {
    int value = ;
    int increment = ;
    int* valuePtr = &value;

    *valuePtr = *valuePtr + increment;

    std::cout << "increment=" << increment << std::endl;
    std::cout << "value=" << value << std::endl;
    return 0;
}
dereference Dereferencing a valid pointer lets code use the original object through the pointer.