【发布时间】:2014-04-22 18:46:04
【问题描述】:
我创建了这个简单的程序来使用指针反转我的数组的顺序。我使用 JAVA 创建了相同类型的程序,但是我觉得指针给了我一个问题。
错误说明:
我的错误来自我的反向功能。而不是给我相反的整数,它似乎是在输出内存地址。例如,0x003456、0xx45268、.......;而不是输出我放在第一个数组中的实际数字。现在我非常肯定我的指针是导致这种混乱的原因,我只是无法准确指出我的错误在哪里。如果有人能引导我走向正确的方向,我将不胜感激。
代码:
#include <iostream>
#include <iomanip>
using namespace std;
void reverseArray(int *[], int);
void firstArrayValue( int [], int);
void main ()
{
const int SIZE = 10;
int firstArray [SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *arrayPointer[SIZE];
for ( int x = 0; x < SIZE ; x++)
{
arrayPointer[x] = &firstArray[x];
}
cout << "The Values In Your First Array Is the Following : \n \n" ;
firstArrayValue(firstArray, SIZE);
reverseArray(arrayPointer, SIZE);
system("pause");
}
void reverseArray(int *incoming_Array[], int size)
{
int *temp;
for (int i = 0; i < size/2; ++i)
{
temp = incoming_Array [size-i-1];
incoming_Array [size-i-1] = incoming_Array [i];
incoming_Array [i] = temp;
}
for (int i = 0; i < size; ++i)
{
cout << incoming_Array [i] << " ";
}
system("pause");
}
void firstArrayValue( int num[], int size)
{
for (int x = 0; x < size; x++)
{
cout << num [x] << " " ;
}
}
【问题讨论】:
-
void main应该是int main。 -
您正在打印一个指针数组。因此,您将打印地址。您需要取消对地址的引用,或者只是将
incoming_Array声明为整数数组。
标签: c++ arrays pointers function-pointers