Wat is char ** in C?

Mogelijk duplicaat:
Wat is een dubbele ster?

Ik ben vrij nieuw bij C en ben deze verklaring tegengekomen

typedef char **TreeType

Ik heb een redelijk goed idee van wat typedef doet, maar ik heb char** nog nooit eerder gezien. Ik weet dat char* een char-array is of vergelijkbaar is met een string. Ik weet niet zeker of char** een 2d char-array is of dat het de aanwijzer is naar een tekenarray. Ik heb rondgekeken maar kan niet vinden wat het is. Als je me zou kunnen uitleggen wat een char** is of me in de goede richting zou kunnen wijzen, zou dat zeer op prijs worden gesteld.

Bedankt! 🙂


Antwoord 1, autoriteit 100%

Technisch gezien is de char*geen array, maar een pointer naar een char.

Evenzo is char**een verwijzing naar een char*. Een verwijzing naar een verwijzing naar een charmaken.

C en C++ definiëren beide arrays achter de schermen als pointertypes, dus ja, deze structuur is naar alle waarschijnlijkheid een array van arrays van chars, of een array van tekenreeksen.


Antwoord 2, autoriteit 27%

Het is een aanwijzer naar een aanwijzer, dus ja, in zekere zin is het een 2D-tekenarray. Op dezelfde manier waarop een char*een array van chars kan aangeven, kan een char**aangeven dat het verwijst naar en array van char*s.


Antwoord 3, autoriteit 14%

nou, char *betekent een aanwijzer naar char, het is anders dan char array.

char amessage[] = "this is an array";  /* define an array*/
char *pmessage = "this is a pointer"; /* define a pointer*/

en, char **: een aanwijzer naar een char-aanwijzer.

U kunt wat boeken bekijken over details over aanwijzer en array.

Other episodes