Ну тут у вас явно локальная переменная типа int *, которая хранится на стеке и происходит её разыменование
что-то навроде
int * ptr = ...;
int value = *ptr;
а вот -18 это уже от компилятора зависит. где он выделит место для переменной, так и будет. если вам очень критично чтоб было 1:1, вставьте прям на ассемблере этот код и всё.