2017-05-18 2 views
1

I haben variableSchreiben den Zeiger in der Zeigeranordnung

int v1, v2; 

Ich habe zwei Zeiger:

int *ptr1, *ptr2; 

und ein Array von Zeigern

int *array[2] = {ptr1, ptr2}; 

Es ist möglich, die sich ändern ptr1 mit Zeiger-Array zu tun, wie ptr1 = &v2

array[0] = &v1; (Ich weiß, dass diese Platte nicht stimmt, aber ich meine die Idee des neuen Wert in den ptr1 Zeiger schreiben)

+3

Nein, es ist nicht möglich, da Array speichert * Kopie * des Zeigers. Speichern Sie dazu den Zeiger auf den Zeiger. '' 'int * ptr1 = &v1; int ** arr [] = {&ptr1}; * arr [0] = &v2;' '' – user5821508

+0

@benutzer7408320 Welche Sprache? C? C++? – songyuanyao

Antwort

3

Sie es nicht mit einem int* [] (Array von Zeigern) tun, weil das Element der array ist nur eine Kopie, dann hat jede Änderung an dem Element nichts mit dem ursprünglichen Zeiger zu tun. So ändert sich array[0] = &v1; nicht ptr1.

Sie können stattdessen einen int** [] (Array von Zeiger auf Zeiger) verwenden, z.

int **array[2] = {&ptr1, &ptr2}; 

dann

*array[0] = &v1; // this will make ptr1 point to v1 
Verwandte Themen