簡體   English   中英

無法弄清楚為什么我的反向功能變得糟糕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM