我是一名计算机科学专业的学生,并参加了我的第一个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 ++ -c -o 9-8.o 9-8.cpp cc 9-8.o -o 9-8未定义的符号:“std :: basic_ostream&gt;&amp; 的std ::运营商LT;&LT;
(std :: basic_ostream&gt;&amp;,char const *)“,引自: _main在9-8.o _main in 9-8.o“std :: ios_base :: Init :: Init()”, 引自: 9-8.o中的__static_initialization_and_destruction_0(int,int) “的std :: basic_string的, std :: allocator&gt; :: size()const“, 引自: std :: __ verify_grouping(char const *,unsigned long, 的std :: basic_string的, std :: allocator&gt; const&amp;)在9-8.o “的std :: basic_string的, 的std ::分配器 :: operator [](unsigned long)const“,引自: std :: __ verify_grouping(char const *,unsigned long, 的std :: basic_string的, std :: allocator&gt; const&amp;)在9-8.o std :: __ verify_grouping(char const *,unsigned long, 的std :: basic_string的, std :: allocator&gt; const&amp;)在9-8.o std :: __ verify_grouping(char const *,unsigned long, 的std :: basic_string的, std :: allocator&gt; const&amp;)在9-8.o “___gxx_personality_v0”,引用 从: std :: __ verify_grouping(char const *,unsigned long, 的std :: basic_string的, std :: allocator&gt; const&amp;)在9-8.o 在9-8.o中___tcf_0 _main在9-8.o unsigned long const&amp; std :: min(unsigned long const&amp;,unsigned long const&amp;)in 9-8.o 9-8.o中的__static_initialization_and_destruction_0(int,int) 全球建设者主要关注mainin 9-8.o CIE in 9-8.o“std :: ios_base :: Init :: ~Init()”, 引自: ___tcf_0在9-8.o“std :: basic_ostream&gt;&amp; 的std :: ENDL (std :: basic_ostream&gt;&amp;)“, 引自: _main in 9-8.o“std :: basic_ostream :: operator&lt;&lt;(std :: basic_ostream&gt;&amp; (*)(std :: basic_ostream&gt;&amp;))“, 引自: _main in 9-8.o“std :: basic_ostream :: operator&lt;&lt;(int)“,引自: _main in 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
这导致了我的第二个问题。即使我输入g ++命令,它也会编译但运行后输出一个空数组。所以我的问题#2是:我的代码是否正确?如何正确使用带有引用地址语句的指针?
答案 0 :(得分:5)
原因:您没有正确使用比较运算符。将其更改为&#34;&lt;&#34;后,您的代码应该可以正常运行。
for(count = 0; count << NUM_COINS; count++)
^ should be "<" here
答案 1 :(得分:1)
除了for
循环中的一个问题外,我没有看到任何问题:
for(count = 0; count << NUM_COINS; count++)
//^^
那不是比较。那是左移操作。我相信你不是故意的。
那应该是:count < NUM_COINS
。