Выводится ссылка массива вместо его содержимого

Рейтинг: -1Ответов: 1Опубликовано: 16.01.2023

При вызове объекта выводится адрес массива вместо его содержимого

Basket () {
string *ptr ;
string orderArray[7] = {"1.Маргарита ", "2.Пепперони ", "3.Рыбная ",
"4. Четыре сыра ","5.Кальцоне ", "6.Неаполитанская ", "7.Римская"};
cout << orderArray;
ptr = &orderArray[7];
}

Ответы

▲ 2

В имени массива хранится адрес первого элемента массива. Потому выводится адрес первого элемента. Если разыменовать имя массива получим первый элемент массива. Для получения последующих элементов массива необходимо использовать адресную арифметику для продвижения по массиву. И разыменовывание адресов для получения хранящихся в массиве значений.

#include <iostream>
#include <string>


void Basket ();


int main(int argc, char *argv[])
{
    Basket ();

    return 0;
}


void Basket ()
{
    std::string *ptr ;
    std::string orderArray[7] = {"1.Маргарита ", "2.Пепперони ", "3.Рыбная ",
"4. Четыре сыра ","5.Кальцоне ", "6.Неаполитанская ", "7.Римская"};
    for (auto item : orderArray)
    {
        std::cout << item << std::endl;
    }

    ptr = &orderArray[7];
}