我正在尝试创建一个大小为100的数组,填充0。当我打印出打印区域时:0x7fff5fbff54c。它似乎打印出该区域的地址,我不知道为什么以及如何解决这个问题,以便打印出它应该是什么。以下是我的代码。
List.hpp
typedef int ElementType;
const int MAX = 100;
class List
{
public:
List();
bool Empty();
void InsertAtEnd(ElementType x);
void Delete(ElementType x);
void Display();
int Smallest();
int Largest();
int Range();
private:
int N;
ElementType listArray[MAX];
};
List.cpp
#include "List.hpp"
#include <iostream>
using namespace std;
List::List() {
listArray[99] = {0};
}
void List::Display() {
cout << listArray;
}
的main.cpp
#include "List.hpp"
#include <iostream>
using namespace std;
int main() {
List list;
list.Display();
return 0;
}
答案 0 :(得分:2)
这是因为listArray是一个指针,你正在打印指针的地址。如果你想打印内容,你需要编写一个循环来遍历每个元素并打印值。
类似的东西:
for (int i=0; i< MAX; ++i)
{
cout << listArray[i] << ", ";
}
cout << endl;
@πάνταῥεῖ是正确的。试试这个:
class List
{
public:
List();
bool Empty();
void InsertAtEnd(ElementType x);
void Delete(ElementType x);
void Display();
int Smallest();
int Largest();
int Range();
private:
int N;
ElementType listArray[MAX] = {0};
};
从构造函数中删除初始化
答案 1 :(得分:1)
答案 2 :(得分:0)
您拥有的代码
List::List() {
listArray[99] = {0};
}
只需在索引listArray
初始化99
的值。
要使用所有值0
初始化数组,您需要使用构造函数初始化列表:
List::List() : listArray {0} {
}