создатели gcc, конечно, подложили свинью с указателями, единственное что они определили так это то, что указатель можно преобразовать в число, а это число обратно в исходный указатель, другие преобразования не определены, что очень плачевно, поскольку они могли бы их определить платформозависимо