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
> 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
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'.
>> 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
> 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
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
Ja, Du hast vollkommen recht und Thomas auch. Entschuldigung, ich
hᅵtte wirklich genauer hinschauen sollen.
cc