Я начал изучать C (так, вы знаете .. указатели).Значение указателя в C
У меня есть этот код:
#include <stdio.h>
#include <string.h>
int main (int argc, char* argv[])
{
char c = 'c';
char* cptr = &c;
printf("c = %c\n", c);
printf("*cptr = %c\n", *cptr);
printf("c address = %p\n", &c);
}
Мой результат:
c = c
*cptr = c
c address = 0x7fff0217096f
Когда я преобразовать шестнадцатеричное выше десятичной, я получаю: 140720994002157
Мои вопросы:
1) Указывает ли это десятичное значение на адрес памяти? Разве он не слишком велик?
2) Как напечатать значение указателя (что означает адрес переменной c
) как десятичное?
Почему вы считаете, что значение указателя является «слишком большой»? – EOF
@EOF Ну, 140720994002157 бит равен примерно 1750 ГБ, правда? – padawanTony
Это виртуальный адрес и не отражает объем оперативной памяти на вашем компьютере. –