Arrays



  • AJ
    **

    [...]const arbeiten

    const variablen sind in dem sinne keine konstanten, er soll mal schön bei define bleiben 🙂

    bye

    tt



  • @Tester:
    Effektiv C++ sagt: "beforzugen sie const und inline gegenüber #define"
    Grund: Fehler mit dem Kompiler abfangen



  • the_freak
    *********

    Effektiv C++ sagt:

    dann bist du der erste der "effektiv C++" in C programmiert. Ich bleibe dabei 🙂 ein const int...ist kein "konstanter" Ausdruck im eigentlichen Sinn.

    bye

    tt



  • jo, hatte mich etwas versehen ^^# Aber da es in C ja den ausdruck ebenfalls gibt hab ichs stehen lassen.

    Gibs denn zwischen der C und der C++ variante n unterschied? denn das Prinzip is doch das selbe: Fehler schon mit dem Kompiler abfangen.

    PS: sry für off topic ^^



  • THE_FreaK schrieb:

    Gibs denn zwischen der C und der C++ variante n unterschied?

    In C89 war folgendes nicht erlaubt:

    int const size=7;
    int arr[size];
    

    In C99 ist es erlaubt - aber nur weil arr in diesem Fall ein VLA wäre (Variable Length Array).

    const in C heisst lediglich 'readonly'
    Während es in C++ eine echte Konstante ausdrückt.



  • In C++ heißt const auch nur read-only:

    void foo(int n) {
      const int s = n;
      int array[s]; // mööp
    }
    

    Der Unterschied zwischen C und C++ ist hier nur, dass in C++ eine const-Variable unter gewissen Umständen als Compilezeitkonstante durchgeht, nämlich wenn sie nur durch Compilezeitkonstanten initialisiert wurde (rekursive Definition.)



  • hallo!Ich hab noch ne bessere Verbesserung:-)Und zwar die 3 geschweifte Klammer am Ende ohne die nämlich nichts geht....greets ciro



  • AJ schrieb:

    Noch ne kleine Verbesserung 🙂

    ciro schrieb:

    #include <stdio.h>
    
    #define MAXX 3
    #define MAXY 3
    
    int main(){
    int i,k,Matrix[MAXX][MAXY];
    
    for(i=0;i<MAXX;i++){
    
    for(k=0;k<MAXY;k++){
    scanf("%d",&matrix[i][k]);
    }}
    

    Somit brauchst bei Änderungen nur an einer Stelle etwas ändern. Anstatt #define kannst du auch mit const arbeiten.

    @AJ Die 3 geschweifte Klammer am Ende wär noch etwas sinnvoller finde ich:-)



  • ciro schrieb:

    @AJ Die 3 geschweifte Klammer am Ende wär noch etwas sinnvoller finde ich:-)

    Tja, ich hab angenommen, dass dein geposteter Code fehlerfrei ist. Darum hab ich erst gar nicht nachgeschaut, ob da noch Fehler drin sind ;).



  • Hi Leutz!
    Wisst ihr wie man ein 2-dimensionales Feld in eine datei speichern kann? Mit nem eindimensionalen hab ich keine probs...
    schoma danke!



  • Wie das eindimensionale auch, nur dass du noch ne 2. schleife für den 2. index brauchst.
    Wie du das abspeicherst bleibt dir überlassen.

    //  Beispiel:
    for (int i=0; i<2; i++)
    {
      for (int j=0; j<AnzahlElemente; j++)
      {
         // code
         // Ein Zugriff auf ein Arryelement könnte z.B. so aussehen
         cout << myArray[i][j];
      }
    }
    


  • Bashar schrieb:

    Der Unterschied zwischen C und C++ ist hier nur, dass in C++ eine const-Variable unter gewissen Umständen als Compilezeitkonstante durchgeht

    Und genau das ist etwas mehr als nur readonly, oder?


Anmelden zum Antworten