Я студент информатики и беру свой первый класс C ++. У меня проблемы с пониманием того, что происходит с моим кодом:
// This program uses the address of each element in the array.
#include <iostream>
using namespace std;
int main()
{
const int NUM_COINS = 5;
int coins[NUM_COINS] = {5, 1, 25, 5, 10};
int *p1; // Pointer to a double.
int count; // Counter variable.
// Use the pointer to display the values in the array.
cout << "Here are the values in the coins array: \n";
for(count = 0; count << NUM_COINS; count++)
{
// Get the address of an array element
p1 = &coins[count];
// Display the contents of the element
cout << *p1;
}
cout << endl;
return 0;
}
- Итак, мой первый вопрос: почему он не компилируется? У меня нет проблем вообще ни с одной из моих других простых программ. Я использую g ++ на OS X 4.2.1. Я должен набрать команду g ++ -o для его компиляции, если нет ... я получаю эти ошибки:
g ++ -c -o 9-8.o 9-8.cpp cc 9-8.o
-o 9-8 Неопределенные символы: "std :: basic_ostream> &
станд :: оператор <<
</p>
(std :: basic_ostream> &, char
const *) ", ссылка на которую указана от:
_main в 9-8.o
_main в 9-8.o "std :: ios_base :: Init :: Init ()",
ссылка от:
__static_initialization_and_destruction_0 (int, int) в 9-8.o
«Станд :: basic_string,
std :: allocator> :: size () const ",
ссылка от:
std :: __ verify_grouping (char const *, unsigned long,
станд :: basic_string,
std :: allocator> const &) в 9-8.o
«Станд :: basic_string,
станд :: распределитель
:: operator [] (unsigned long) const ", ссылка из:
std :: __ verify_grouping (char const *, unsigned long,
станд :: basic_string,
std :: allocator> const &) в 9-8.o
std :: __ verify_grouping (char const *, unsigned long,
станд :: basic_string,
std :: allocator> const &) в 9-8.o
std :: __ verify_grouping (char const *, unsigned long,
станд :: basic_string,
std :: allocator> const &) в 9-8.o
"___gxx_personality_v0", ссылка
от:
std :: __ verify_grouping (char const *, unsigned long,
станд :: basic_string,
std :: allocator> const &) в 9-8.o
___tcf_0 в 9-8.o
_main в 9-8.o
длинное без знака const & std :: min (длинное без знака
const &, unsigned long const &) в 9-8.o
__static_initialization_and_destruction_0 (int, int) в 9-8.o
глобальные конструкторы подключены к mainin 9-8.o
CIE в 9-8.o "std :: ios_base :: Init :: ~ Init ()",
ссылка от:
___tcf_0 в 9-8.o "std :: basic_ostream> &
станд :: епсИ
(std :: basic_ostream> &) ",
ссылка от:
_main in 9-8.o "std :: basic_ostream
:: operator << (std :: basic_ostream> &
(*) (std :: basic_ostream> &)) ",
ссылка от:
_main in 9-8.o "std :: basic_ostream
:: operator << (int) ", на который ссылаются из:
_main в 9-8.o "std :: cout", на который ссылаются из:
_main в 9-8.o
_main в 9-8.o
_main in 9-8.o ld: символ (ы) не найдены collect2: ld вернул 1 выход
статус создания: *** [9-8] Ошибка 1 </p>
, что приводит ко второму вопросу. Даже если я наберу команду g ++, она компилируется, но после запуска выдает пустой массив. Итак, мой вопрос № 2: мой код правильный? Как правильно использовать указатели со справочным адресом?