AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschied: int* bla - int *bla

Ein Thema von Motzi · begonnen am 21. Apr 2005 · letzter Beitrag vom 21. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#1

Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 11:30
Hi,

vielleicht eine doofe Frage, aber gibt es einen semantischen Unterschied zwischen:
Code:
int* bla;
int *bla;
??

Gruß, Motzi
Manuel Pöter
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 11:37
Nope. nur um der Lesbarkeit willen...
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 11:56
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:
Erklären sie den semantischen Unterschied der beiden folgenden Deklarationen
Code:
/* 1. Art */
int   *counter, start;

/* 2. Art */
int*   counter, start;
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 11:59
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.

......

P.S.: Keine Garantie
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 12:03
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:
int a, b;
Dann sind beide Variablen Integer. Bei
Code:
int* a, b;
sind beide Variablen Pointer, genau wie bei
Code:
int *a, b;
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.
(Das ist meine Ansicht der Dinge, bzw. das, was von den paar C-Stunden haengengeblieben ist. Ich lass mich gerne belehren )

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 12:03
Das wär natürlich eine Möglichkeit..

Jemand hier, der eine Garantie für diese Erklärung geben kann?
Manuel Pöter
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#7

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 12:24
der Stern bezieht sich nur auf die 1. Variable:
Code:
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)
(int *a und int* a zu unterscheiden wäre eh unsinnig, da auch int*a gültig ist)
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#8

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 12:34
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:
#define PInt int*;
PInt a, b;
b = 17; <-- Integer-Variable!
a = &b; <-- Zeiger auf Integer!
Edit: Ich meine, es ist das selbe, ob ich
int* a, b;
int *a, b;
int * a, b;
int*a,b;
etc. schreibe.
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#9

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 13:25
Code:
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
von jemanden der es wissen sollte (kanns leider nicht testen)
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Unterschied: int* bla - int *bla

  Alt 21. Apr 2005, 13:29
Ok.. danke..!
Manuel Pöter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz