was ist äquivalent?
-
Gegeben ist ein Vektor v. Welche der folgenden Ausdrucke sind aquivalent?
a) v und v[0]
b) v und *v
c) v und &(v[0])
d) *v und v[0]
e) *v und &v[0]meine antwort:
c) v und &(v[0])
d) *v und v[0]stimmt das?
-
bitte leute, helft mir

-
c stimmt nicht - beachte den Unterschied zwischen sizeof(v) und sizeof(&(v[0])).
d ist richtig und, wenn ich gerade keinen Denkfehler mache, die einzige richtige Lösung unter den zur Auswahl stehenden.
-
Hmm, also ich dachte:
– Array ist identisch mit Adresse seines ersten Elements:
p = &a[0];
– kann geschrieben werden als:
p = a;und hätte c gelten lassen?
Oder nicht :-P?
-
Hallo,
Vielen, vielen Dank für deine Antwort!
kann das evt. noch jemand besätigen?
p.s hier noch eine simple (!) aufgabe, muss bitte nur noch geprüft werden

Gegeben seien folgende Denitionen:
int v[] = { 0, 10, 20 };
int *ptr = v;
Welche der folgenden Ausdrucke sind aquivalent zu *ptr++?
a) *(ptr + 1)
b) (*ptr)++
c) *(ptr++)Ich bin der Meinung dass es Antwort c) ist! Bin mir zwar ziemlich sicher, aber ihr seit ja Profis. Ist das auch richtig?
danke!!
-
BJ2K schrieb:
Hmm, also ich dachte:
– Array ist identisch mit Adresse seines ersten Elements:
p = &a[0];Richtig, bis auf 3 Ausnahmen. Eine hab ich oben erwähnt. Und wenns Ausnahmen gibt, ist es nichtmehr äquivalent (=gleichbedeutend).
-
blubbsajflk schrieb:
Welche der folgenden Ausdrucke sind aquivalent zu *ptr++?
a) *(ptr + 1)
b) (*ptr)++
c) *(ptr++)Ich bin der Meinung dass es Antwort c) ist!
Richtig.
-
Vielen Dank Leute!
ich liebe euch *grins*
-
ist antwort a nicht auch richtig ?
IMHO müste es das sein.@SG1:
kannst du die anderen zwei ausnahmen ausser sizeof noch erwähnen?
Ich komm nicht drauf.mfg branleb
-
branleb schrieb:
ist antwort a nicht auch richtig ?
IMHO müste es das sein.Nein, nicht wenn der Zeiger vom Typ "int *" ist (jedenfalls ist mir persönlich kein Compiler bekannt ist, der seinen int in einem einzigen Byte unterbringt)