Typ für Zeiger weiterzählen, und Typ für Array Index
-
Ist es guter Stil, wenn ich bei Zeigern den Typ "ptrdiff_t" verwende:
int array[10] = {0}; int *p = array; ptrdiff_t interval= 4; cout << *(p+interval) << endl; //bzw. cout << p[interval] << endl;und bei Arrays den Typ "size_t":
int array[10] = {0}; size_t index = 3; cout << array[index] << endl;So ging dass aus meinem Buch hervor, wenn ichs richtig verstanden habe. Eure Meinung, wie macht ihr dass?
MfG
Stromberg
-
Also eine Kurzbeschreibung über ptrdiff_t findest du hier:
http://www.cplusplus.com/reference/clibrary/cstddef/ptrdiff_t.html
und hier eine kleine Diskussion drüber, die - wie ich finde - recht gut ist.
/Edit:
Guter Stil ist so eine Sache. In deinem Beispiel würde ich schon deshalb nicht ptrdiff_t nehmen, da es sich nicht um das Resultat einer Zeigersubtraktion handelt.
-
was würdest du dann nehmen? "int"?
MfG
Stromberg
-
ich persönlich würde am liebsten int nehmen...
das ist doch das logischte oder? weil int für eine (An-)Zahl steht
-
Mh aber sagen wir so, wenn mir ptrdiff_t gefällt, und ichs verwende, dann ist es nicht falsch oder schlechter Stil?
MfG
Stromberg
-
Stromberg schrieb:
Mh aber sagen wir so, wenn mir ptrdiff_t gefällt, und ichs verwende, dann ist es nicht falsch oder schlechter Stil?
MfG
StrombergEs ist daher "schlechter" Stil, weil es nicht für das gedacht ist. Und daher macht es nicht wirklich Sinn. Es geht wahrscheinlich meistens gut, aber das heisst nichts.. Den konzipiert sind solche Typen ja nicht für normale Fälle, sondern für Ausnahmen.
-
Aha, okay dann nehme ich "int".
MfG
Stromberg