AGB  ·  Datenschutz  ·  Impressum  







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

-- in C & Pointer

Ein Thema von ferby · begonnen am 31. Jan 2008 · letzter Beitrag vom 2. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

-- in C & Pointer

  Alt 31. Jan 2008, 02:18
Hallo,

Ich schreib grad mein erstes großes C Programm (XML Pharser )

Dabei habe ich folgendes



int *Pfad_Tag_Nr;


so jetzt weiß ich einenen Wert zu und dann kommt die Zeile

*(Pfad_Tag_Nr)--;

Ich will den Wert auf den der Pointer zeigt um eins erniedrigen,
leider kommt da ein Pfusch raus. (Glaub die Adresse wird um eins erniedrigt)

Mit
*(Pfad_Tag_Nr)=*(Pfad_Tag_Nr)-1;


gehts.


Meine Frage is jetzt:

Wenn

*(Pfad_Tag_Nr)--;

nicht das gleiche wie

*(Pfad_Tag_Nr)=*(Pfad_Tag_Nr)-1;

ist, was ist dann

*(Pfad_Tag_Nr)--;

ausgeschrieben???


Verwende Visual Studie 2005
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#2

Re: -- in C & Pointer

  Alt 31. Jan 2008, 02:39
Es geht um Operatorenprioritäten. -- hat eine höhere Priorität als der Dereferenzierungs-Operator (*), die Binäre Subtraktion - wird allerdings erst nach dem * ausgewertet.
Sprich hier wie der Parser deine Ausdrücke interpretiert:
Code:
*(p)--
wird zu
*(p--)

*p = *p - 1
hingegen zu
(*p) = ((*p) - 1)
hier findest du (nach unten scrollen oder nach "priority" suchen) die Operator-Prioritäten, in welcher Reihe sie ausgewertet werden

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: -- in C & Pointer

  Alt 31. Jan 2008, 03:21
Also wäre das was ich will

(*(Pfad_Tag_Nr))--
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

Re: -- in C & Pointer

  Alt 31. Jan 2008, 03:32
Zitat von ferby:
Also wäre das was ich will

(*(Pfad_Tag_Nr))--
Ja - durch die Klammerung spezifizierst du, dass die Dereferenzierung vor der Dekrementierung durchgeführt werden soll.
Falls der Term alleinstehend ist, kannst du die Klammern auch sparen, und das ganze so lösen:
Code:
--*Pfad_Tag_nr;
Wobei man dann pro gespartem Zeichen 2 extra Kommentare berechnen darf

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: -- in C & Pointer

  Alt 31. Jan 2008, 08:55
Dieser Thread ist ein Paradebeispiel dafür, wie gut C und C++ wirklich ist.
Zitat von JasonDX:
Wobei man dann pro gespartem Zeichen 2 extra Kommentare berechnen darf
Speziell der letzte Post zeigt dies eindrucksvoll.

Frage: Wieso schreibst Du 2008 dein erstes C-Programm? Wieso nicht C#? Das ist eine schöne Sprache. Fast so hübsch wie Delphi.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#6

Re: -- in C & Pointer

  Alt 31. Jan 2008, 09:00
Zitat von alzaimar:
Frage: Wieso schreibst Du 2008 dein erstes C-Programm?
Vielleicht weil C an Universitäten immer noch als Beispielsprache gelehrt wird.
Und diese Sprache hatte nicht ohne Grund so viel Erfolg. Auch heute noch wird es bei der maschinennahen Entwicklung genutzt.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: -- in C & Pointer

  Alt 31. Jan 2008, 09:12
Zitat von Xong:
Zitat von alzaimar:
Frage: Wieso schreibst Du 2008 dein erstes C-Programm?
Vielleicht weil C an Universitäten immer noch als Beispielsprache gelehrt wird.
So wie Brainfuck

Nee, is schon klar, war nur etwas Polemik und OT von mir. Genug jetzt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#8

Re: -- in C & Pointer

  Alt 31. Jan 2008, 20:25
Zitat von alzaimar:
Dieser Thread ist ein Paradebeispiel dafür, wie gut C und C++ wirklich ist.
Glücklicherweise sagt der THread nichts über die Qualität von C und insbesondere C++ in den richtigen Händen aus
Moritz
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: -- in C & Pointer

  Alt 1. Feb 2008, 08:03
Zitat von DMW:
Glücklicherweise sagt der Thread nichts über die Qualität von C und insbesondere C++ in den richtigen Händen aus
Och, C ist nicht 'besser' als Delphi, nur weiter verbreitet. Aber das ist eh eine Glaubensfrage und bevor wir uns duellieren, einigen wir uns auf 'Jedem das Seine' und freuen uns täglich neu über Exploits, die Dank der weiten Verbreitung und Sicherheit dieses Makro-Assemblers entdeckt werden.

Wie Du schon sagtest: In den richtigen Händen ist C eine total geil kompakte und auch sichere Sache. Leider gibt es nicht so viele 'richtige Hände'.... Das gilt aber auch für (fast) jede andere Sprache.

Was ich hier blöd finde, ist die Mehrdeutigkeit (im Verständnis) eines Ausdruckes wie *p--. Ich meine, das ist die kürzeste Klausurfrage in der IT:
Zitat:
Erkläre *p--
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#10

Re: -- in C & Pointer

  Alt 1. Feb 2008, 08:10
Zitat von alzaimar:
Was ich hier blöd finde, ist die Mehrdeutigkeit (im Verständnis) eines Ausdruckes wie *p--. Ich meine, das ist die kürzeste Klausurfrage in der IT:
Zitat:
Erkläre *p--
Das macht sie aber auch so reizend. Am gereiztesten reagier ich immer auf... *scnr*
  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 07:06 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