#include <iostream>
#include <stdio.h>
#include <cstdint>

using namespace std;

void print_pvar(char name, int* pvalue) {
	auto addr  = reinterpret_cast<uintptr_t>( pvalue);
	auto paddr = reinterpret_cast<uintptr_t>(&pvalue);
	printf(" %c value = %p, address = %p\n", name,  pvalue, paddr);
	printf("*%c value = %d, address = %p\n", name, *pvalue,  addr);
}

void my_proc(int* b) {
    print_pvar('b', b);
    *b = 7;
}
 
int main() {
    int a = 5;
    print_pvar('a', &a);
    my_proc(&a);
    printf("after my_proc\n");
    print_pvar('a', &a);
    return 0;
}