Übergeben von Werten direkt als Array zur Funktion in C [duplizieren]

8

Ich habe eine Funktion, die ein Integer-Array als Argument akzeptiert und es druckt.

%Vor%

Gibt es eine Möglichkeit, die Werte des Arrays wie folgt zu übergeben

%Vor%

Wenn ich die Werte vor hand kenne, ohne ein Array nur für die Übergabe an die Funktion erstellen zu müssen?

    
J...S 19.09.2016, 09:58
quelle

1 Antwort

8

TL; DR Die Funktion erwartet ein (Zeiger auf) ein Array als Eingabeargument, also müssen Sie eins übergeben. Es gibt keine Möglichkeit, dies ohne ein Array zu nennen.

Wenn Sie fragen wollten, ohne eine zusätzliche Array-Variable zu erstellen, , ist das sicherlich möglich. Das erreichen Sie mit einem so genannten zusammengesetzten Literal Etwas wie:

%Vor%

sollte gut funktionieren.

Um C11 zu zitieren, Kapitel §6.5.2.5

[ In C99 , Kapitel §6.5.2.5 / p4 ]

  

Ein Postfix-Ausdruck, der aus einem geklammerten Typnamen gefolgt von einer geschweiften Klammer besteht   Liste der Initialisierer ist ein zusammengesetztes Literal. Es stellt ein unbenanntes Objekt bereit, dessen Wert von der Initialisierungsliste angegeben wird.

Das heißt, printArr() und printArray() sind nicht gleich, aber ich glaube, das ist nur ein Tippfehler in Ihrem Snippet.

    
Sourav Ghosh 19.09.2016, 10:00
quelle