Где хранится информация от типе данных указателя (переменной)?
Указатель хранит адрес первого байта хранимых данных. Но также указатель "знает" о размере этой памяти и о том, как эти данные интерпретировать (хранит тип данных). Сам адрес, судя по всему, занимает 3 байта. Размер указателя - 4 байта. Отсюда мой вывод: информация о типе данных хранится в четвертом, скрытом байте. Этот байт либо перед адресом, либо после. Как получить и разобрать эту информацию без использования высокоуровневых функций?
Или информация о типах данных держится отдельно во время выполнения программы? И верно ли я понимаю, что сама по себе переменная и есть указатель? Ведь она так же хранит адрес, где лежат данные и тип этих данных. (Или у меня каша в голове...)
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
int num = 242304;
cout << "Address of pointer to num (variable num): " << &num << endl;
cout << "Size of pointer to num (variable num): " << sizeof(&num) << endl;
cout << "Type of pointer to num (variable num): " << typeid(&num).name();
}
// Address of pointer to num (variable num): 0x61ff0c
// Size of pointer to num (variable num): 4
// Type of pointer to num (variable num): Pi