Если я объявлю следующие переменные:
int array[10] = { 34, 43,12, 67, 34, 43,26, 98, 423,1 };
int * p = array;
Затем этот цикл:
for ( int i = 0; i < 10; i++ )
{
std::cout << &*p++ << " ";
}
дает мне другой вывод (другой набор адресов) для этого кода:
for ( int i = 0; i < 10; i++ )
{
std::cout << p++ << " ";
}
Почему? Разве они не семантически эквивалентны?
EDIT:
Что ж, мои извинения всем, кто ответил на этот вопрос, у меня нет оригинального кода, это был тест, который я сделал дома, и оказалось, что я удалил этот код из своего проекта. (моя широкополосная сеть еще не подключена, поэтому я подождал, пока не приступлю к работе, чтобы опубликовать это) В любом случае - я почти уверен, что забыл инициализировать p
. Но вопрос "не являются ли они семантически эквивалентными?" был дан ответ. Спасибо.