I am not able to grasp the reasons why pointers need a "type specifier". To my eyes they are just pointers so their type might be just like "ptr" and in a 32-bit machines I would expect them to occupy four bytes each of memory, whatever they point to.
When I need to retrieve a particular variable (int or double etc...) then the compiler, according to the type of some variable, would know "how many" bytes it should retrieve to get the whole. I probably I miss some logic and would appreciate your opinions.
Example:
#include "pch.h"
#include <iostream>
int main()
{
ptr *value; // Why is this ILLEGAL?
int test = 15;
value = &test;
std::cout << *value;
}