Ich wurde gebeten, eine Funktion zu schreiben, die den Inhalt eines Arrays nach dem x
ten Element (wie in x
und weiter, wie x
ist ein Zeiger innerhalb der Array). Ich bin nicht erlaubt, []
für alles andere als Initialisierung zu verwenden, und nicht erlaubt, Variablen innerhalb der Funktion zu erstellen - ich darf nur verwenden, was die Funktion von der Haupt empfängt, die die Länge (int n
), das Array (int* arr
) und Element ist x
(int* x
).Verwendung von * nur * Zeigern, um den Inhalt eines Arrays zu drucken
Meine Frage ist, wie kann ich x
und her im Array mit nur Zeigern ohne einen Index von einer Schleife drucken?
Hier ist, was ich schrieb:
void printAfterX(int* arr, int n, int* x)
{
if ((arr <= x) && (x < arr + n))
{
while(x < (arr + n))
{
printf("%8d", *(arr+x)); //I know you can't do this
x++;
}
}
}
Dazu:
7 8 4 3 6 1 2
Edit:: Danke euch alle für die Hilfe
int arr[] = { 0,5,6,7,8,4,3,6,1,2 };
int n=10;
int* x = (arr+3);
printAfterX(arr, n, x);
Der Ausgang sein sollte! Funktioniert gut. :)
ist 'n' die Gesamtlänge des Arrays oder die Anzahl der zu druckenden Zeichen? – atturri
Wenn 'x' ein Zeiger auf einen Wert ist, können Sie' printf ("% 8d", * (arr + * x) '(dereferenz' x') verwenden –
@atturri nein, ich drucke nur von arr [x] bis Das Ende des Arrays – fishy