In the US, you need to add the prefix 011 before the country code. In Italy it's 00 before the country code, in Japan it is 010. Does it work calling in the UK to enter 0044 prefix for internal UK calls? Because in Italy without the 00 preceding the country code, the call is not going to be connected.
The "011" from the US, "00" from Italy, etc, is known as the international dialling code. It's the code used by each country to enable access to international calls. And, as you point out, each country has its own international access code (though many have "00"). And then on top of that, each country has its own unique international access code ("1" for the USA, "44" for the UK, and so on).
If one is situated in Country A, and one wants to dial a phone in Country B, then one has to prefix the number with Country A's international dialling code, then Country B's international access code. So if you, in the US, wanted to call me in the UK, you'd have to prefix my number with "01144".
Mobile operators solved the problem of not knowing international dialling codes by introducing the universal prefix "+". So I can, for example, store a UK friend's number in my UK phone with the prefix "+44". Then, wherever I travel in the world with my phone, when I dial my friend's number, the network knows which country I am in and simply substitutes in that country's international dialling code for the "+" (so if I were in the US, it would substitute the "+" with "011", but if I were in Italy, it would substitute the "+" with "00", and so on).
But, contrary to Vixen's incorrect claims, if a contact is stored on my phone as, say, 0207289444 (a (mythical) London phone number), then I guarantee that if I travel anywhere outside the UK and dial that number, I will never reach my contact. I would have to have stored the number as +44207289444 for it to connect when my phone was outside the UK.