[英]Can't figure out why I am getting bad out put from my reverse function
我創建了這個簡單的程序來使用指針反轉數組的順序。 我使用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] << " " ;
}
}
正如在您的問題下提到的注釋一樣,您需要引用數組中的指針以獲取實際值。 將您的print
行更改為以下內容以明確引用。
cout << *(incoming_Array [i]) << " ";
void reverseArray(int incoming_Array[], int size) //instead of int *incoming_Array[]
{
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] << " ";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.