Was macht ** in C-Sprache [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Zeiger zur Zeigerklärung 16 AntwortenWie funktioniert der Zeiger auf Zeiger in C? 14 answersIch bin neu in C mit einem guten Hintergrund in Java und ich versuche, Zeiger und Arrays zu verstehen.
Ich weiß, dass tiefgestelltoperator[]
ist Teil einer Array-Definition, also:
int numbers[] = {1,3,4,5};
would ein ganzzahliges Array erstellen, das im Speicher als 16 Bytes, 4 Lots von 4 Bytes dargestellt wird:
numbers[0] = 1, address 0061FF1C
numbers[1] = 3, address 0061FF20
numbers[2] = 4, address 0061FF24
numbers[3] = 5, address 0061FF28
Wenn es jedoch um Zeiger geht, wird mein Wissen immer schlechter. Wenn ich also einen Zeiger auf die Array-Nummern erstellen würde, würde ich Folgendes tun:
int *pNumbers = &numbers[0];
was so aussehen würde:
Und ich vermute, es würde eine Größe von 4 Bytes haben?
Jedoch das**
Ich lese als "Zeiger auf einen Zeiger" was für mich keinen Sinn macht, warum sollte jemand einen Zeiger auf einen Zeiger wollen, wenn sicher a-> b-> c dann a-> c ausreichen würde? Ich weiß, ich vermisse etwas, und es muss etwas mit Arrays wie @ zu tun habargv
kann vom Typ @ sechar[ ]
oderchar **
wie unten gesehen:
int main(int argc, char **argv){}
So
Was ist das**
)?was nutzt es?wie wird es im Speicher dargestellt?