It just looks this way. Because you are using compiler where this two types have the same sizeTo me it looks like the address of string can be hold as a number
There are compilers where these two types will be of the different size
That's why standard complient compiler will always warn about such a cast