![]() |
|
|||||||
| Newsgroup de.comp.lang.c Die Programmiersprache C (ISO, ANSI, K&R). |
![]() |
|
|
Themen-Optionen | Ansicht |
|
#1
|
|||
|
|||
|
Hallo allerseits,
1) In C gibt es zwar den unären cast-Operator () Es gibt aber auch die Klammerung mit (), um in einem Ausdruck wie z.B: (a+b)*c zu veranlassen, dass a+b zuerst berechnet wird. Ist diese Klammer () auch ein Operator? Welche Stelligkeit hat er ? unär, binär oder tenär 2) Sind -> [] .. auch Operatoren. Welche Stelligkeit haben sie 3) Gibt es im Internet eine Tabelle in der die Operatoren mit ihrer Stelligkeit, Priorität und Assoziativität erklärt werden und als Tabelle kostenlos downgeloadet werden können? mfg Ernst |
|
|
||||
|
||||
|
|
|
#2
|
|||
|
|||
|
Ernst Bamann schrieb:
> 1) In C gibt es zwar den unären cast-Operator () > Es gibt aber auch die Klammerung mit (), um in einem Ausdruck wie z.B: Es gibt auch noch die Parameter- bzw. Argumentliste bei Funktionen. > Ist diese Klammer () auch ein Operator? Nein. > Sind > -> > [] > .. > > auch Operatoren. War das jetzt eine Frage oder eine Feststellung? Wie auch immer: -> und [] sind (binäre) Operatoren, und .. gibt es nicht. > Gibt es im Internet eine Tabelle in der die Operatoren mit ihrer > Stelligkeit, Priorität und Assoziativität erklärt werden und als > Tabelle kostenlos downgeloadet werden können? Mehrere. Google einfach mal nach "C Operatoren Tabelle" und suche Dir eine aus. Gruß. Claus |
|
#3
|
|||
|
|||
|
Ernst Bamann <carlox*web.de> writes:
>Ist diese Klammer () auch ein Operator? Man kann an Hand von ISO/IEC 9899:1999 (E) nicht belegen, daß in der primary expression der Form »( expression )« ein Operator vorkommt. Allerdings könnte man trotzdem diese Auffassung vertreten. >Welche Stelligkeit hat er ? Wenn man die Klammern als Operator ansehen will, dann sollte die Arität 1 sein. >2) >Sind >-> >[] >. >auch Operatoren. Hier kann man an Hand von ISO/IEC 9899:1999 (E) auf Grund der Überschrift des Abschnitts belegen, daß es Operatoren sind: »6.5.2 Postfix operators«. >Welche Stelligkeit haben sie Diese wird in ISO/IEC 9899:1999 (E) nicht explizit genannt, aber unter Zugrundelegung des allgemeinen Sprachgebrauchs: 2. >Gibt es im Internet eine Tabelle in der die Operatoren mit ihrer >Stelligkeit, Priorität und Assoziativität erklärt werden und als >Tabelle kostenlos downgeloadet werden können? Es gibt solche Tabellen, darunter ist aber keine, die von ISO/IEC 9899:1999 (E) anerkannt wird. Siehe auch: http://www.purl.org/stefan_ram/pub/formal_operator_de |
|
#4
|
|||
|
|||
|
ram*zedat.fu-berlin.de (Stefan Ram) writes:
> Ernst Bamann <carlox*web.de> writes: >>Ist diese Klammer () auch ein Operator? > > Man kann an Hand von ISO/IEC 9899:1999 (E) nicht belegen, > daß in der primary expression der Form »( expression )« ein > Operator vorkommt. Allerdings könnte man trotzdem diese > Auffassung vertreten. Lediglich waere sie falsch: Die C-Norm enthaelt eine Liste von Operatoren und so benutzte Klammern sind nicht aufgefuehrt. [...] >>2) >>Sind >>-> >>[] >>. >>auch Operatoren. > > Hier kann man an Hand von ISO/IEC 9899:1999 (E) auf Grund > der Überschrift des Abschnitts belegen, daß es Operatoren > sind: »6.5.2 Postfix operators«. > >>Welche Stelligkeit haben sie > > Diese wird in ISO/IEC 9899:1999 (E) nicht explizit genannt, > aber unter Zugrundelegung des allgemeinen Sprachgebrauchs: 2. Es wird explizit gennant, zum einen in der Syntaxdefinition, zum anderen in den Beschreibungen der Operatoren selber: 6.5.2.1 Array subscripting Constraints One of the expressions shall have type ``pointer to object type'', the other expression shall have integer type, and the result has type ``type''. 6.5.2.3 Structure and union members Constraints The first operand of the . operator shall have a qualified or unqualified structure or union [betrifft . und ->] Weil der Text der C-Norm in 'allgemeiner Sprache' verfasst ist, bedeutet 'wenn man den allgemeinen Sprachgebrauch zugrunde legt' nichts anderes als 'wenn man den Inhalt des Norm-Textes nicht ignoriert'. |
|
#5
|
|||
|
|||
|
Claus Reibenstein schrieb:
> Ernst Bamann schrieb: >> 1) In C gibt es zwar den unären cast-Operator () >> Es gibt aber auch die Klammerung mit (), um in einem Ausdruck wie >> z.B: >> Ist diese Klammer () auch ein Operator? > > Nein. Echt nicht? Wenn ich 6.5 und 6.5.2 nicht falsch verstehe, sollte die Klammer ein Operator sein. In 6.5.2 werden die Klammern in einem Atemzug mit den Operatoren ->, [] und . erwähnt. Warum sollten die Klammern jetzt kein Operator sein, -> und [] aber schon? cc |
|
#6
|
|||
|
|||
|
Claudio Carobolante schrieb:
> Claus Reibenstein schrieb: > >> Ernst Bamann schrieb: >> >>> 1) In C gibt es zwar den unären cast-Operator () >>> Es gibt aber auch die Klammerung mit (), um in einem Ausdruck wie >>> z.B: >>> Ist diese Klammer () auch ein Operator? >> >> Nein. > > Echt nicht? Wenn ich 6.5 und 6.5.2 nicht falsch verstehe, sollte die > Klammer ein Operator sein. Ich sehe weder in 6.5 (Expressions) noch in 6.5.2 (Postfix Operators) irgendeinen Hinweis auf solche Klammern. Ich würde es mal mit 6.5.1 (Primary Expressions) versuchen. > In 6.5.2 werden die Klammern in einem > Atemzug mit den Operatoren ->, [] und . erwähnt. Wo denn? Gruß. Claus |
|
#7
|
|||
|
|||
|
Claudio Carobolante <www*carobolante.net> wrote:
> Claus Reibenstein schrieb: >> Ernst Bamann schrieb: >>> 1) In C gibt es zwar den unären cast-Operator () >>> Es gibt aber auch die Klammerung mit (), um in einem Ausdruck wie >>> z.B: >>> Ist diese Klammer () auch ein Operator? >> >> Nein. > > Echt nicht? Wenn ich 6.5 und 6.5.2 nicht falsch verstehe, sollte die > Klammer ein Operator sein. Eigentlich echt nicht. Möglich dass du es falsch verstehst. Die Klamer um die es hier geht ist in 6.5.1 beschrieben "A parenthesized expression is a primary expression." Und im Gegensatz zu 6.5.2ff ist in 6.5.1 nicht von "Operator" dir Rede. > In 6.5.2 werden die Klammern in einem > Atemzug mit den Operatoren ->, [] und . erwähnt. Warum sollten die > Klammern jetzt kein Operator sein, -> und [] aber schon? Verwechselst du eventuell die Klammerung um einen Ausdruck (s.o.) mit dem Funktionsaufruf in 6.5.2.2? Wie beim Cast wird da auch eine Klammer verwendet, aber das ist nicht das was der OP gemeint hat. Tom |
|
#8
|
|||
|
|||
|
Claus Reibenstein schrieb:
> Claudio Carobolante schrieb: >> Claus Reibenstein schrieb: >>> Ernst Bamann schrieb: >>> >>>> 1) In C gibt es zwar den unären cast-Operator () >>>> Es gibt aber auch die Klammerung mit (), um in einem Ausdruck wie >>>> z.B: >>>> Ist diese Klammer () auch ein Operator? >>> >>> Nein. >> >> Echt nicht? Wenn ich 6.5 und 6.5.2 nicht falsch verstehe, sollte >> die Klammer ein Operator sein. > > Ich sehe weder in 6.5 (Expressions) noch in 6.5.2 (Postfix > Operators) irgendeinen Hinweis auf solche Klammern. > > Ich würde es mal mit 6.5.1 (Primary Expressions) versuchen. Ja, Du hast vollkommen recht und Thomas auch. Entschuldigung, ich hätte wirklich genauer hinschauen sollen. cc |
|
|
|
|
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Problem mit Operatoren | Marc Weichhold | Newsgroup microsoft.public.de.vc | 1 | 04-03-2009 09:07 AM |
| Problem mit Operatoren | msnews.microsoft.com | Newsgroup microsoft.public.de.vc | 0 | 04-03-2009 08:38 AM |
| Operatoren überladen? | Christian Franzen | Newsgroup de.comp.lang.php.misc | 12 | 10-14-2007 01:35 PM |
| Klassenkonstante und Operatoren | Gregor Kofler | Newsgroup de.comp.lang.php.misc | 19 | 10-14-2007 12:56 PM |
| Operatoren in der Quantenmechanik | Alexander Streltsov | Newsgroup de.sci.physik | 24 | 09-24-2007 02:12 PM |