Передача по указателю string* s
передает адрес, поэтому s
не относится к типу string
, это адрес. Если вы разыменовали его, то используется некоторое выражение, включая *s
, тогда *s
имеет строковый тип.
При передаче по ссылке string& s
, s
имеет тип string, поэтому разыменование не требуется.