Ich bin neu in der C-Sprache, daher entspricht meine Frage möglicherweise nicht den hohen Standards
können wir
verwenden %Vor%statt
%Vor%Was ist der Unterschied? und welches ist effizienter?
Sie sollten dem Compiler damit vertrauen. Ich kann jedoch zwei Alternativen vorschlagen, von denen ich weiß, dass sie je nach Anwendung gut funktionieren.
1) Verwenden Sie int a [10] [10], stellen Sie jedoch sicher, dass Sie beim Schleifen in der richtigen Reihenfolge darauf zugreifen. Der Compiler wird "unterhalb" eine einzelne Array-Struktur verwenden, die in der Reihenfolge beginnt
%Vor%vs
%Vor%unterscheidet sich in Bezug auf die Leistung. Das Spätere ist leistungsfähiger.
2) Die Option 1 erfordert besondere Sorgfalt und ist kontraintuitiv. Ich bevorzuge es lieber
%Vor%und machen
%Vor%wo die Funktion inline deklariert werden sollte und das was du getan haben musst. Wenn Sie die Funktion vermeiden können, ist es noch besser. Zum Beispiel, wenn es eine Summe ist, ändert es nichts 2d oder Vektor.
EDIT: Hier ist eine Referenz, die in den Details das Bit über die Array-Reihenfolge erklärt: Ссылка
Sie hätten m[x].a[y]
, was eine kompliziertere Syntax als m[x][y]
ist, aber lexikalisch nichts hinzufügt
Nein. Dies ist eine Struktur, die ein Array enthält.
%Vor%Sie können ein Array von struct definieren:
%Vor%Um es in einem Schritt zu tun:
%Vor%Beachten Sie, dass Sie ein zusätzliches Semikolon vor m [10] haben, was keine korrekte Syntax ist.
Um auf ein Element in arr zuzugreifen, verwenden Sie m[i].a[j]
Dies entspricht nicht der Syntax eines 2d-Arrays wie:
%Vor%, auf die Sie mit mat[i][j]
Tags und Links c