So habe ich dieses kleine Problem. Ich schreibe gerade ein etwas größeres Projekt als das, aber ich wollte mein Problem so grundlegend wie möglich darstellen. So .. Ich habe eine einfache 10-Elemente-Array, wenn ganze Zahlen und ein Zeiger auf das vierte Element in diesem Array. Ich fülle das Array mit den Zahlen 0 ... 9 und sortiere sie dann in umgekehrter Reihenfolge. Wie Sie sehen können, zeigt der Zeiger immer noch den Wert auf dem vierten Platz (das ist richtig). Also meine Frage ist. Gibt es eine Möglichkeit, dass der Zeiger irgendwie dem Wert folgt, auf den er gerade am Anfang des Codes zeigte (Wert = 3). Sorry für schlecht Englisch, wenn Sie irgendwelche Fragen haben, werde ich versuchen, zu erklären. Hier ist ein Code.C++ Müssen diese schnelle Lösung
#include<iostream>
#include<Windows.h>
using namespace std;
void main()
{
int tab[10];
int *ptr;
for (int i = 0; i < 10; i++) tab[i] = i;
ptr = &tab[3];
for (int i = 0; i < 10; i++) cout << tab[i] << endl;
cout << *ptr << endl;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 9; j++)
if (tab[j] < tab[j + 1) swap(tab[j], tab[j + 1]);
for (int i = 0; i < 10; i++) cout << tab[i] << endl;
cout << *ptr;
system("pause");
}
Was ist die tatsächliche Ausgabe? Was ist die erwartete Ausgabe? –
Ich erwarte, dass nach dem Mischen der Zahlen (Werte) im Array der Zeiger immer noch auf den Wert (NOT ADRESS) zeigt, den er vor dem Mischen gezeigt hat. –
"Das muss schnell gelöst werden" ist der am wenigsten beschreibende Titel, den ich mir vorstellen kann. Denkst du, dass andere hier Fragen stellen, weil sie eine langsame Lösung brauchen? – user463035818