Co-located Cache is available to any instances in the deployment. It just means that the instance runs the Cache on the same host as the web/worker roles. You just need to know the Role Name to access the cache.
The difference between Dedicated and Co-located is the memory available for Caching and Processing Power available to keep the cache maintained. It is cheaper to use co-located, but dedicated would be a step up in performance (and potentially cost) since its only job is to manage the cache. There is also flexibility if you use a dedicated cache role since you can use larger VM size for your worker/web role, but a smaller VM size for your cache role (or vice versa depending on your needs).
When you configure your cache, you just need to know which role is hosting the cache cluster - more specifically the role name.
<dataCacheClients>
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="[cache cluster role name]" />
</dataCacheClient>
</dataCacheClients>