primitive type declaration memory allocation sizes