Маттео избил меня до этого.Его ответ правильный.К сожалению, я не смог прокомментировать его сообщение (возможно, я слишком новичок здесь), но я хотел подтвердить его ответ, поскольку большинство ответов до сих пор неверны.
Тип данных, о котором идет речь, представляет собой массивбайт.
НЕ используйте оператор равенства (==) для сравнения значений двух массивов, он будет иметь значение true, только если вы сравниваете тот же массив с самим собой .Даже если байтовые массивы имеют одинаковые значения для каждого из своих элементов, но являются разными массивами (и, следовательно, находятся в разных местах в памяти), оператор равенства вернет false.
По сути, массив простоуказатель в памяти.Вот два способа объявить массивы:
int * pointer = new int[5];
или:
int array[] = new int[5];
Вы можете получить доступ к первому элементу с помощью:
*pointer = 100; // Dereference the pointer to get the int at that location
или:
array[0] = 100;
Вы даже можете сделать:
*array = 100;
или:
pointer[0] = 100;
Это должно продемонстрировать, что массив - это просто указатель на первый элементблок смежной памяти.Таким образом, сравнивая два массива друг с другом с помощью оператора равенства, это то же самое, что сравнивать два указателя с другим.Чтобы повторить основной пункт, если массивы не находятся в одном и том же пространстве в памяти, указатели указывают на разные места и, следовательно, не «равны», по крайней мере, с точки зрения оператора равенства.
Я надеюсь, что это подходящая информация для вашего уровня квалификации :) Если нет, возможно, это поможет кому-то еще.Кроме того, прошло некоторое время с тех пор, как я имел удовольствие использовать C ++, так что, надеюсь, все правильно.