Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
--- C Datentypen (http://www.informatikerboard.de/board/thread.php?threadid=1818)


Geschrieben von lilli. am 24.02.2014 um 14:55:

  C Datentypen

Meine Frage:
Hallo ich habe folgende Fragen.

a) welche zahlenbereiche deckt signed char ab?

b) Wie viele Byte(char) werden für die Definition der Variable txt allokiert? char txt[20] = "Hello world!\0";

c) Welche Zahlenwerte liefern folgende Ausdrücke auf einem Rechner mit 32Bit Architektur und bei Verwendung des gcc

char c;
int str[42]

1.sizeof(c);
2.sizeof(str[9]);
3.sizeof(str);
4.sizeof(&str);



Meine Ideen:
a) -128-127 (wird auch der Bereich 'A'...'z' abgedeckt?)
b) 13
c) hier habe ich leider keine Ahnung



Geschrieben von eulerscheZahl am 24.02.2014 um 16:25:

 

a) -128 bis 127 ist richtig.
und ja, Buchstaben sind da mit abgedeckt, A hat z.B. die 65 (im ASCII-Code).
b) char txt[20] bewirkt, dass 20 char allokiert werden, also 20 Byte.
c) mit sizeof() erhältst du die Größe der Variablen in Byte.
also hast du:
1.: sizeof(char) = 1 Byte
2.: sizeof(str[9]) = sizeof(int) = 4 Byte (zumindest bei 32-Bit Systemen)
3.: sizeof(str) = 42 * sizeof(int) = 168
4.: sizeof(&str) = 4 (Die Adresse der ersten Speicherzelle von str, bei 32-Bit Systemen eben 32 Bit)



Geschrieben von lilli. am 24.02.2014 um 18:52:

 

vielen dank smile



Geschrieben von ed209 am 25.02.2014 um 19:18:

 

Hi

Sieht stark nach schlecht gestellten Hausaufgaben aus.
Soweit ich weiß schreibt der C Standard keine bestimmte bit-breite für chars vor.

Gruß,
ED209,


Forensoftware: Burning Board, entwickelt von WoltLab GmbH