Fragen zu C

Dieses Thema im Forum "C/C++" wurde erstellt von Linthorul, 08.09.2008.

  1. #1 Linthorul, 08.09.2008
    Linthorul

    Linthorul Arch Luxer

    Dabei seit:
    01.12.2007
    Beiträge:
    205
    Zustimmungen:
    0
    Hallo,

    ich habe (nochmal) zwei Fragen zu C

    1. was ist der Unterschied zwischen *x und &c ?
    2. gibt es einen Unterschied zwischen return (0); und return 0; ?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Gast1

    Gast1 Guest

    &c ist die adresse von c
    *x ist das byte / die bytes, die x addressiert
    bsp:
    Code:
    int c = 0;
    int *x;
    x = &c;
    *x = 1;
    
    //c hat jetzt den wert 1
     
  4. #3 Schneemann, 08.09.2008
    Schneemann

    Schneemann Routinier

    Dabei seit:
    27.06.2006
    Beiträge:
    289
    Zustimmungen:
    0
    Ort:
    /home/janosch
    Zwischen "return X" und "return (X)" gibt es keinen Unterschied. Du kannst so viele Klammern setzen wie du willst ;).

    Wegen Pointern: Aus Erfahrung weiß ich, dass das ein schwieriges Thema für Einsteiger ist, aber nicht aufgeben ;) Wenn man weiß wie sie funktionieren, kann echt tolle Sachen mit machen.
     
  5. #4 Linthorul, 08.09.2008
    Linthorul

    Linthorul Arch Luxer

    Dabei seit:
    01.12.2007
    Beiträge:
    205
    Zustimmungen:
    0
    Danke für die Antworten. :)

    Danke
    (eigentlich hab ich nen Tippfehler gehabt und meine Unterschied zwischen *x und &x)
    also hab ich das so richtig verstanden:
    1. c wird inititalisiert/definiert und c wird der Wert 0 zugewiesen
    2. das Byte, das x adressiert, wird zugewiesen
    3. x wird die Adresse von c zugewiesen
    4. der Adresse von x wird der Wert 1 zugewiesen
    5. dadurch das c die Adresse von x hat, hat sie auch den Wert von x

    Das hab ich noch nicht so verstanden
    Was ist das Byte das x adressiert. Hat es den selben Wert wie die Adresse von x?

    Und ich wollte jetzt mal selbst den Unterschied &x und *x herausfinden, aber ich erhalte nur ein Segmentetion Fault als Ausgabe :(
    Code:
    #include <stdio.h>
    int main(void) {
    	int *x;
    	*x = 2;
    	printf("%p\n",&x);
    	printf("%p\n",*x);
    	printf("%i\n",&x);
    	printf("%i\n",*x);
    	return 0;
    }
    Ok weil ich hab in NetBSD ein return (1); gefunden, wass in OpenBSD zu einem return 1; geändert wurde, also könnte man das ja auch bei NetBSD ändern^^

    Ja das ist auch mein Problem

    Ich bin die Anleitung des C Wikibooks durchgegangen und hab jetzt auch schon im C von A bis Z Openbook nachgeschaut aber wirklich verstanden hab ich es noch nicht

    thacrazze
     
  6. #5 andy81, 08.09.2008
    Zuletzt bearbeitet: 08.09.2008
    andy81

    andy81 von_suse_zu_arch_wechsler

    Dabei seit:
    30.03.2008
    Beiträge:
    72
    Zustimmungen:
    0
    Verständlich, da du zwar den Pointer definierst, ihm aber keinen Speicherbereich zuweist. Entweder du machst es wie im Post von RedEagle, weist ihm also die Adresse einer anderen Variable zu, oder du reservierst den Speicher mit malloc

    Code:
    ...
    int *x;
    x = malloc(sizeof(int));
    *x = 2;
    ...
    
    für malloc musst du noch die stdlib.h einbinden

    Das ist auch etwas unglücklich vormuliert. Der Begriff Byte hat hier schon mal nichts verloren. Ein Byte ist in C ein char (da dieser Datentyp eine Breite von 8 Bits hat). Ein Pointer kann aber auf jeden beliebigen Datentypen zeigen.

    Nochmal die Erklärung:
    Du hast einen Pointer, der irgendwo im Speicher liegt und in dem eine Adresse gespeichert ist. Diese Adresse ist der Ort, an dem die eigentliche Information gespeichert ist, mit der du arbeiten willst (behaupte ich mal einfach so, kann in wirklichkeit noch komplexer sein). Angenommen du hast einen Pointer x, der auf eine Integervariable zeigt, dann bekommst du mit

    x die Adresse wo der Wert des Integers gespeichert ist
    *x den Wert des Integers
     
Thema:

Fragen zu C

Die Seite wird geladen...

Fragen zu C - Ähnliche Themen

  1. Sicherheitsfragen zu PHP-Anwendungen auf der Webseite

    Sicherheitsfragen zu PHP-Anwendungen auf der Webseite: Hallo miteinander, habe eine kleine Webseite (4 Jahre statisch, keine Sicherheitsprobleme bisher) und ich frage mich, wie sicher die Verwendung...
  2. Fragen zu find

    Fragen zu find: Hallo an alle, Ich bin ziemlich neu in der Linux Welt und habe paar frage Ich soll alle Datein im system finden die vor weniger als drei Tagen...
  3. Sicherung der Systempartition inkl. Bootloader + ein paar Verständnisfragen

    Sicherung der Systempartition inkl. Bootloader + ein paar Verständnisfragen: Hallo, ich habe 2 Mediacenter-PC im Wohn- und Schlafzimmer in denen jeweils Ubuntu auf einer SSD installiert wurde. Einer läuft mit einem Bios,...
  4. Freedomvote: Zehn Fragen über digitale Freiheiten für die Schweizer Parlamentswahl

    Freedomvote: Zehn Fragen über digitale Freiheiten für die Schweizer Parlamentswahl: Die FSFE Schweiz und die Swiss Open Systems User Group haben eine Kampagne gestartet, die die Kandidaten zu Themen wie Netzpolitik und freie...
  5. Mozilla: Fragen und Antworten zu WebExtensions

    Mozilla: Fragen und Antworten zu WebExtensions: Mozilla hat mit einem FAQ auf die Aufregung reagiert, die die Ankündigung der Einstellung der bisherigen Erweiterungsschnittstelle verursachte....