![]() |
Unterschied: int* bla - int *bla
Hi,
vielleicht eine doofe Frage, aber gibt es einen semantischen Unterschied zwischen:
Code:
??
int* bla;
int *bla; Gruß, Motzi |
Re: Unterschied: int* bla - int *bla
Nope. nur um der Lesbarkeit willen...
|
Re: Unterschied: int* bla - int *bla
Gut, hab ich mir auch gedacht.. aber in einer alten Testangabe der Lehrveranstaltung "Systemnahes Programmieren" (die ich dieses Semester mach) findet sich nämlich diese Angabe:
Zitat:
|
Re: Unterschied: int* bla - int *bla
Hier würde ich sagen, dass im ersten Beispiel nur counter ein Pointer ist (Direktbezug). Im zweiten Beispiel sind beide Variablen ein Pointer, da das Sternchen sich auf den Typ bezieht.
...:cat:... P.S.: Keine Garantie :mrgreen: |
Re: Unterschied: int* bla - int *bla
Soviel ich weiss sind in beiden Beispielen beide Variablen Pointer. Der * bezieht sich nicht auf die Variable, sondern auf den Typ. Wenn ich schreibe
Code:
Dann sind beide Variablen Integer. Bei
int a, b;
Code:
sind beide Variablen Pointer, genau wie bei
int* a, b;
Code:
Wie gesagt, der Stern bezieht sich auf den Typ, nicht auf die Variable, und bei der Deklaration von mehreren Variablen in einer Zeile haben alle denselben Typ.
int *a, b;
(Das ist meine Ansicht der Dinge, bzw. das, was von den paar C-Stunden haengengeblieben ist. Ich lass mich gerne belehren ;)) Greetz alcaeus |
Re: Unterschied: int* bla - int *bla
Das wär natürlich eine Möglichkeit..
Jemand hier, der eine Garantie für diese Erklärung geben kann? :mrgreen: |
Re: Unterschied: int* bla - int *bla
der Stern bezieht sich nur auf die 1. Variable:
Code:
(int *a und int* a zu unterscheiden wäre eh unsinnig, da auch int*a gültig ist)
int* a,b;
a = (int*)malloc(4); *a = 1; *b = 1; // Compiler (VC++): Zeigeroperation ungültig (egal ob int* a,b oder int *a,b, jedoch ok bei int *a,*b) |
Re: Unterschied: int* bla - int *bla
Es ist beides absolut das selbe. Aus diesem Grund sollte man auch immer typedef anstatt define zur Typdefinition verwenden. Denn sonst kann folgendes passieren:
Code:
Edit: Ich meine, es ist das selbe, ob ich
#define PInt int*;
PInt a, b; b = 17; <-- Integer-Variable! a = &b; <-- Zeiger auf Integer! int* a, b; int *a, b; int * a, b; int*a,b; etc. schreibe. |
Re: Unterschied: int* bla - int *bla
Code:
von jemanden der es wissen sollte (kanns leider nicht testen)
13:11:11 n3]fu[4s:
int* a, b; int *a, b; kurze frage: ist bei 2) nur die variable a nen pointer? oder ist beides das selbe 13:11:37 System: beides das selbe, immer ist nur a pointer 13:12:00 n3]fu[4s: hm beim 1. ist das * hinter int, müssten doch a und b pointer sein? 13:12:16 System: ne, das * bindet an die variabeln 13:12:26 System: also mußt du int *a,*b; schreiben 13:12:29 System: wenn du sowas willst 13:12:39 n3]fu[4s: ok danke 13:12:59 System: dem compiler stört es nicht, wenn * am int direkt steht, aber es gehört eben dennoch zum a 13:13:36 System: sowas kannst du natürlich auch umgehen 13:13:38 n3]fu[4s: ok dachte wenn ichs dahinter mach bezieht sichs auf alle variablen und bei nem a nur auf die eine 13:13:45 System: zb mit typedef int* intpointer; 13:13:48 n3]fu[4s: wie kann man denn machen das alles pointer sind? 13:13:49 System: intpointer a,b; 13:14:02 System: dann weiß man immer was man hat 13:14:06 System: oder die komischen * 13:14:36 System: ne, leerzeichen und solche dinge haben in c keine bedeutung, die sachen also so näher ran zu machen ändert nichts 13:14:56 System: oder=ohne |
Re: Unterschied: int* bla - int *bla
Ok.. danke..! :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz