为什么不使用引用地址指针进行c ++编译?
我是一名新的计算机科学专业的学生,参加了我的第一个C ++课程。 我学到了很多东西,这是我在堆栈交换中的第一篇文章。 我有一个问题,理解我的代码正在发生什么。 我有2个问题。
我会发布我的代码,然后问我的问题。
// 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>&std :: operator <<
(std :: basic_ostream>&,char const *)“,引用自:_main in 9-8.o _main in 9-8.o”std :: ios_base :: Init :: Init()“,引用来自: static_initialization_and_destruction_0 (int,int)在9-8.o
“std :: basic_string,std :: allocator> :: size()const”,引用自std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)in 9-8 .o“std :: basic_string,std :: allocator :: operator [](unsigned long)const”,引用自:std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const& )in 9-8.o std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)in 9-8.o std :: __ verify_grouping(char const *,unsigned long,std在9-8.o“ _gxx_personality_v0”中引用:std :: __ verify_grouping(char const *,unsigned long,std :: basic_string,std :: allocator> const&)9中的:: basic_string,std :: allocator> const&) -8.o ___ tcf_0 in 9-8.o _main in 9-8.o 9-8.o unsigned long const&std :: min(unsigned long const&,unsigned long const&)9-8.o中的__static_initialization_and_destruction_0(int,int) .o全局构造函数键入mainin 9-8.o CIE in 9-8.o“std :: ios_base :: Init ::〜Init()”,引用来自:___tcf_ 0 in 9-8.o“std :: basic_ostream>&std :: endl(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 in 9 -8.o“std :: cout”,引用来自:_main in 9-8.o _main in 9-8.o _main in 9-8.o ld:symbol(s)not found collect2:ld返回1退出状态make:* [9-8]错误1
这导致了我的第二个问题。 即使我输入g ++命令,它也会编译,但运行后会输出一个空数组。 所以我的问题#2是:我的代码是否正确? 如何正确使用引用地址语句的指针。
谢谢。
原因 :您没有正确使用比较运算符。 将其更改为“<”后,您的代码应该正常工作。
for(count = 0; count << NUM_COINS; count++)
^ should be "<" here
除了for
循环中有一个问题,我没有看到任何问题:
for(count = 0; count << NUM_COINS; count++)
//^^
这不是比较。 这是左移操作。 我相信你不打算这样做。
这应该是: count < NUM_COINS
。
上一篇: why doesn't make work on a c++ compile with a reference address pointer?
下一篇: c++ mysql sqlstring crashes 0xC0000005 unable to read memory