Ich weiß, dass bei Verwendung als Funktion Parameter
Mit char * a [] vs char a [] []char* a[]
entspricht
char a[][]
entspricht.
Bei Verwendung als Funktionsparameter entspricht char* a[]
char** a
. Also known as Array to pointer conversion to some.
jedoch, wenn in Block Umfang verwendet sie sind nicht die gleichen, und ich bin verwirrt, wenn ich einen über den anderen vorziehen sollte, oder wenn ich char a[][]
überspringen sollte, wie ich in der Regel dazu neigen, char* a[]
in anderen zu sehen Menschen Code.
Ein Argument gegen char a[][]
ist offensichtlich, dass Sie eine feste Größe für die C-Strings geben müssen, die es enthalten wird, aber beeinflusst das die Leistung in irgendeiner Weise?
Sollte ich es vorziehen, diese:
char* a[] = {"hello", "world"};
Oder diese:
char a[][10] = {"hello", "world"};
Vorsicht vor jedem Satz, der mit "Ich weiß das" beginnt ... –
@KerrekSB Was meinst du? – hgiesel
Ihre führende Behauptung ist falsch. 'char a [] []' ist niemals erlaubt. Was als Funktionsparameter types äquivalent ist, ist char * a [] 'und' char ** a'. –