C ++ Borland адрес переменной - PullRequest
       3

C ++ Borland адрес переменной

0 голосов
/ 28 октября 2011
int main(int argc, char* argv[])
{
        int *pInt;
        int iParam = 423425;
        pInt = &iParam;
        std::cout<<&pInt<<std::endl;
        system("pause");
        return 0;
}

Почему я получаю адрес как 1250008, а не как 0x00000?

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

Возвращает вам адреса, где pInt находится в виртуальной памяти.
Это может быть любой адрес.Компилятор может разместить указатель на любой адрес в адресном пространстве, выделенном для процесса.

Если вы хотите получить адрес в hex, а не в десятичном формате, вам нужно использовать Манипулятор ввода-вывода , например:

std::cout << hex << &pInt << std::endl; 
0 голосов
/ 28 октября 2011

Если вы выполните оператор printf ("% x", iParam), значение, сохраненное в iParam, преобразуется в шестнадцатеричное и распечатывается, но не будет начинаться с 0X.Тот же сценарий также в случае печати адреса.Не начинается с 0X.

...