C++ Grundlagen float,int,char?

vpam80

Grünschnabel
Hallo zusammen,

wäre von euch jemand so freundlich mir die Begriffe
float,int und char etwas genauer zu erläutern.

Im voraus schonmal vielen Dank




Gruß vpam80
 
char benutzt man um zeichen einer variablen zuzuweisen

bsp.: char test[11] = "elf Zeichen!";

int benutzt man um zahlen einer variablen zuzuweisen

bsp.: int test = 22;

float benutzt man um Gleitkommazahlen einer variablen zuzuweisen

bsp.: float test = 3,1415926535;
 
Zuletzt bearbeitet:
char benutzt man um zeichen einer variablen zuzuweisen
Erstmal ist char nur ein einzelnes Zeichen bzw. eigentlich ein Zahlenwert von -128 bis 127 oder 0 bis 255 (je nach System). Jedem Zahlenwert ist dabei ein bestimmtes Zeichen zugeordnet.
bsp.: char test[11] = "elf Zeichen!";
Das Beispiel ist schlecht. Die String-Variable test kann 11 Zeichen speichern, du weist allerdings einen String mit 13 Zeichen zu.
bsp.: float test = 3,1415926535;
Du weist der Variablen test den Wert 1415926535 zu. In C/C++ benutzt man die englische Schreibweise für rationale Zahlen mit dem Punkt als Dezimaltrennzeichen. Das Komma ist der Sequenzoperator. Es müßte eigentlich lauten:
C:
float test = 3.1415926535;
Gruß

PS: Etwas mehr Sorgfalt bei deinen Antworten wäre schön. Bitte halte dich an die Netiquette, Punkt 15 - Groß/Kleinschreibung. Danke.
 
Moin deepthroat,

Erstmal ist char nur ein einzelnes Zeichen bzw. eigentlich ein Zahlenwert von -128 bis 127 oder 0 bis 255 (je nach System)

Jetzt muss ich mal dumm nachfragen: was heißt "je nach System"?
Das ist doch eher die Frage, ob "signed" oder "unsigned" deklariert, oder irre ich mich da?

Danke und Gruß
Klaus
 
Moin.
Jetzt muss ich mal dumm nachfragen: was heißt "je nach System"?
Das ist doch eher die Frage, ob "signed" oder "unsigned" deklariert, oder irre ich mich da?
Du irrst dich. :)

Es gibt (im Gegensatz zu int, short und long) 3 unterschiedliche char Typen. Der Typ char ist entweder als singed char oder als unsigned char implementiert (je nach System). Es gilt also nicht immer wie z.B. bei int: int == signed int.

Das die char Typen untereinander verschieden sind, kann man in C++ leicht nachvollziehen:
C++:
void f(unsigned char);
void f(signed char);

char c;
f(c); // <- Compilerfehler: der Funktionsaufruf ist mehrdeutig
D.h. ein char entspricht nicht einfach einem unsigned char oder signed char. Man muss hier explizit casten um anzugeben welche Funktion aufgerufen werden soll.

Gruß
 
Hallo,
Es gibt (im Gegensatz zu int, short und long) 3 unterschiedliche char Typen. Der Typ char ist entweder als singed char oder als unsigned char implementiert (je nach System)

Ääh - jetzt bin ich endgültig verwirrt :suspekt: DREI unterschiedliche Typen?

Habe zwar eben in meiner Windef.h etliche typedefs hierzu gefunden, aber "char" kann doch eigentlich nur "signed" oder "unsigned" sein, also wie Du schon schriebst im Wertebereich von <-128 bis 127> oder <0 bis 255> ........ :rolleyes:

tschüss
Klaus
 
Hallo,


Ääh - jetzt bin ich endgültig verwirrt :suspekt: DREI unterschiedliche Typen?

Habe zwar eben in meiner Windef.h etliche typedefs hierzu gefunden, aber "char" kann doch eigentlich nur "signed" oder "unsigned" sein, also wie Du schon schriebst im Wertebereich von <-128 bis 127> oder <0 bis 255> ........ :rolleyes:
char ist kein typedef. Der Typ char ist ein eingebauter eigener Typ, wie auch unsigned char und signed char.

Für int Typen gilt: int == signed int != unsigned int. D.h. int und signed int sind immer völlig äquivalent.

Für die char Typen gilt. char != signed char != unsigned char

Je nach System kann man natürlich in einem char genau die gleichen Werte speichern wie in einem signed char oder unsigned char. Aber es wird vom Compiler zwischen den 3 Typen unterschieden weil es generell keine eindeutige Äquivalenz zwischen den Typen gibt.

Gruß
 
und das auch nur bei C++... nicht bei C..
meiner meinung nach ein total blödes system
Nein, das gilt für C genauso wie für C++. Nur gibt es da keine Überladung für Funktionen. Wenn man portablen C Code schreiben will, sollte man das allerdings wissen und muss darauf achten was man für einen char Typ verwendet.

Gruß

PS: Bitte halte dich an die Netiquette
 
Zurück