Глобальный массив в переполнении стека

Кто-нибудь может сказать мне, что не так в следующем коде, когда я инициализирую глобальный массив и хочу напечатать его значение вне функции main ()

#include <iostream>

using namespace std;

int global_array[5] = {10,20,30,40,50};

cout << global_array[2];

int main()
{
cout << "Hello World!" ;
}

Ошибка продолжает появляться

error: 'cout' does not name a type|

-2

Решение

Заявление cout << global_array[2]; не является декларацией (это выражение). Только объявления допускаются вне функций.

Итак, если вы хотите напечатать что-нибудь за пределами main функция, вы можете сделать это только с помощью выражения в другой функции.

3

Другие решения

Я думаю, проблема в том, что у вас есть код, который выполняет печать, вне какой-либо функции. Операторы в C ++ должны быть внутри функции. Например:

#include <iostream>

using namespace std;
void hello();

int global_array[5] = {10,20,30,40,50};

void hello()
{
cout << global_array[2];
}

int main()
{
hello();
cout << "Hello World!" ;
}

Прежде чем задать вопрос, вы можете выполнить поиск: «Cout» не называет тип

Спасибо вам.

1

если вы хотите вызвать его извне основного, он должен быть в функции примерно такой

#include <iostream>
using namespace std;

int global_array[5] = {10,20,30,40,50};

int pre()
{
cout << global_array[2];
return 0;
}

int x = pre();

int main()
{
cout<<"Hello World";

return 0;
}
0

как я уже упоминал в комментарии, это можно сделать с помощью классов C ++.

#include <iostream>

int global_array[5] = { 10,20,30,40,50 };

struct foo
{
foo()
{
std::cout << global_array[2] << std::endl;
}
};

foo f;

int main()
{
}
0
По вопросам рекламы [email protected]