Не удается напечатать адрес указателя в шестнадцатеричном формате - PullRequest
0 голосов
/ 27 апреля 2019

Я недавно начал изучать C. Это первый язык, который я использую, когда мне приходится работать с указателями самостоятельно. В моей книге есть пример, где автор написал этот код:

int x = 4;
printf("X is stored at: %p\n", &x);

Он получил выход 0x3E8FA0. Когда я пишу точно такой же код, я не получаю шестнадцатеричное число в качестве адреса, просто что-то вроде 000000000062FE1C. Кто-нибудь может сказать мне, почему? И пожалуйста, не плачь меня, я новичок в C.

1 Ответ

0 голосов
/ 30 апреля 2019

Ну, как говорится в комментариях к вашему вопросу: это точно шестнадцатеричный адрес !!Причина, по которой он не совсем такой, как в примере, заключается в том, что компилятор не показывает его с префиксом 0x, а точное положение переменной не совпадает с тем, что в системе автор книги, которую вы читаетепишет.Шестнадцатеричные числа состоят из цифр в наборе 0,... 9, a,.. f или 0,... 9, A,... F, для цифр от 0 до 9 и от 10 до 15 соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...