Basisdatentypen Flashcards

(132 cards)

1
Q

Was ist ein Byte?

A

8 Bit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist eine Speicheradresse?

A

Die Byte-Position von einer Zahl im Speicher

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie ist der Speicher eingeteilt?

A

Der Speicher besteht aus Byte-Blöcken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist die kleinste Anzahl an Bit, auf die im Speicher separat zugegriffen werden kann.

A

Ein Byte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist eine Variable?

A

Eine Variable ist ein Adresse im Hauptspeicher, an der Sie einen Wert ablegen können, um gegebenenfalls später wieder darauf zurückzugreifen. Neben einer Adresse hat eine Variable auch einen Namen, genauer gesagt einen Bezeichner, mit dem man auf den Wert der Variable zugreifen kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist ein Variablentyp?

A

Ein Variablentyp besagt, wie die Bits einer Variable strukturiert sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was sind Operanden?

A

Wenn man mit Variablen rechnet, dann nennt man die Variablen Operanden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind Operatoren?

A

Wenn man eine Rechenoperation ausführt wird die Rechenoperation selbst als Operator bezeichnet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Was ist ein Parameter?

A

Wenn man in C Funktionen definiert, kann man dieser Funktion Variablen und Zahlen, oder auch Argumente, übergeben, die die Funktion nutzen kann. Diese Argumente werden Parameter gennant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist eine Deklaration einer Variable?

A

Die Deklaration einer Variablen informiert den Compiler über den Typ und den Namen der Variablen, ohne ihr Speicherplatz zu reservieren oder ihren Wert zu initialisieren. es ist im Wesentlichen eine Ankündigung, dass eine Variable dieses Namens und Typs verwendet wird.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was ist die Definition einer Variable?

A

Die Definition einer Variablen reserviert Speicherplatz für die Variable und kann auch einen Anfangswert zuweisen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Welche Speicheradresse hat eine Variable?

A

Welche Speicheradresse eine Variable bekommt kann nicht beeinflusst werden und ändert sich auch bei jedem Aufrufen des Programms.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist die Variablentabelle?

A

Der Compiler nutzt die Variablentabelle um Informationen über die Variablen zu Speichen und zu organisieren. Z.B.: Bezeichner, Speicherplatz, Typ, Speicheradresse, Gültigkeitsbereich etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Variablenverwendung ohne Wertzuweisung.

A

In C wird der vorherige Inhalt der Speicheradresse, die einer Variable zugewiesen wird nicht mit einem Standardwert überschrieben. Daher befindet sich vor der ersten Wertzuweisung einer Variable ein zufälliger Wert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Variablengrößen

A

Sämtliche Variablengrößen sind ein Vielfaches eines Bytes. Deshalb werden die Variablengrößen auch nicht in Bit sondern in Byte angegeben.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist ein Array

A

Ein Array ist ein Datenfeld, also eine Feld, in dem mehrere Variablen des selben Typs gespeichert werden können

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Array - Definition

A
Typ Bezeichner[Feldgröße]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

kann man bei einem Array die größe nach Definition verändern?

A

Nein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Wie werden Strings in C gespeichert.

A

In Arrays, wobei die einzeilnen Zeichen in den einzelnen Feldern des Arrays stehen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Wie viel Speicher beletgt eine Variable?

A

Das hängt vom Typ der Variable ab. Jeder Datentyp hat eine Speichergröße, die für den Datentypen fest ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Datentyp: int (Integer)

A
  • wird zum Speichern von Ganzzahlen verwendet
  • hat nach ANSI C mindestens 2 Byte
  • Größe hängt von der Maschine ab
  • hat laut Standart die natürliche Größe, die von der Ausführungsumgebung vorgeschlagen wird, und die meistens genau so breit, wie die Wortbreite des Prozessors ist.
  • Ausnahme ist 64 Bit-Archiketuren, wo der int nur 32 Bit hat.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Grenzen von Datentypen

A

Die Grenzen von Datentypen sind in der Headerdatei
~~~

<limits.h>
```
definiert.
</limits.h>

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Bezeichner - Namenswahl

A

Bezeichner sollten andeuten, was in ihnen gespeichert wird

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

int - Schreibweise

A
int a;
a = 5;

Folgende Schreibweisen sind dabei erlaut:
~~~

int wert = 5;
int wert1 = 10, wert2 = 20;
int wert1, wert 2 = 20;
int wert1;
int wert2 = wert1 = 10;
~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
länge des Bezeichners
Die Länge des Bezeichners ist beliebig. Nach ASCI-C Standart sind aber nur die ersten 31 Zeichen von Bedeutung.
26
Datentyp: long
* Ist eine Ganzzahlvariable. * Ist eine größere Variante des int * Standartgröße 4 Byte. * Normale größe sind 8 Byte.
27
Datentyp: long long
* Noch größer als long * Standartgröße 8 Byte
28
Datentyp: short
* eine kleine Variante vom int * Standartgröße 2 Byte
29
Wie greife ich auf die Adresse einer Variable zu?
``` &Bezeichner ``` gibt die Adresse der Variable zurück
30
Funktion - printf()
Die printf() Funktion wird verwendet um Text auf die Konsole zu drucken. Dabei wird der String als Parameter mitgegeben. Soll der String Variablen enthalten können diese mit Formatzeichen im String beschrieben werden und werden nach dem String ebenfalls als Paramterer angegeben, in der Reihnfolge, in der sie im String stehen. Dabei haben verschiedene Datentypen verschiedene Formatzeichen.
31
Funktion - scanf()
Die Funktion scanf() ließt eine Eingabe bis zum nächsten ENTER in Variablen ein. Das erste Argument ist wieder ein String, der die Formatzeichen für die Variablen enthält. Danach folgen die Adressen der Variablen.
32
positive Ganzzahlenvariablen
Soll eine Ganzzahlvariable nur positive Zahlen enthalten können wird vor den Variablentyp das schlüsselwort unsigned gestellt. Bsp.: ``` unsigned int var; unsigned long var; ```
33
Datentyp: float
* Speicherung von Kommazahlen im Gleitpunktformat * 4 Byte groß * 6-stellige Genauigkeit: Kann nur die ersten 6 Zahlen unterscheiden ## Footnote 1234,567 und 1234,568 sind in einem Float nicht unterscheidbar
34
Datentyp: double
* Speicherung von Kommazahlen im Gleitpunktformat * meinsten 8 Byte groß (nicht gewährleistet) * kann garantiert ein float aufnehmen (gewährleistet) * meist 15-stellige Genauigkeit (nicht gewährleistet)
35
Datentyp: long double
* Speicherung von Kommazahlen im Gleitpunktformat * meinsten 10 Byte groß (nicht gewährleistet) * kann garantiert ein double aufnehmen (gewährleistet) * meist 19-stellige Genauigkeit (nicht gewährleistet)
36
Datentyp: long long doulbe
* Speicherung von Kommazahlen im Gleitpunktformat * meinsten 16 Byte groß (nicht gewährleistet) * kann zu problemen führen, wenn ein double aufgenommen werden soll
37
Warum kann es zu Problemen kommen, wenn ein double-Wert in einen long long double geschrieben werden soll?
Die Größe der Mantisse und des Exponenten können je nach Implikation variieren, was leider eventuell zu Imkompatibilität bei der Wandlung von z.B. ein double in long long double führt.
38
Warum sollte man für Berechnungen keinen float verwenden?
Weil die Genauigkeit zu klein ist.
39
Wofür wird vor allem der long long double verwendet?
Der long long double wird vor allem auf Graikprozessoren für Spielekonsolen benutzt.
40
Welchen Datentyp erhalte ich bei einer Operationen mit zwei unterschiedlichen Datentypen?
Man erhält immer den genaueren Datentyp. Gleitpunktypen gelten als genauer als Ganzzahltypen.
41
Fehlerstelle bei Division mit zwei Ganzzahltypen
Bei der Division von zwei Ganzzahltypen wird der eventuelle Rest, der entsteht einfach weggelassen.
42
Was ist, wen die Genauigkeit von Gleitkommatypen nicht ausreichen sollte?
Sollte der genauste Gleitkommatyp nicht ausreichen muss man sich nach sogenannten Festkomma-Algorithmen umsehen. Diese gibt es in C jedoch nicht standartmäßig.
43
Probleme beim Rechnen mit Gleitpunkttypen
Nicht alle Reellen Zahlen können exakt im Gleitpunktformat dargestellt werden. So kann z.B die Zahl 0.1 nie exakt dargestellt werden, da sie im Gleitpunktformat eine periodische Zahl ist. Dazu kommen kleine Fehler, die bei jeder Berechnung passieren können. Daher sollte bei vergleichen mit Gleitkommazahlen immer ein Bereich und nicht eine exakte Zahl angegeben werden.
44
Komplexe Gleitpunkttypen in C
komplexe Gleitpunttypen sind in der Headerdatei \ definiert
45
Datentyp: char
* Kann eine Ganzzahl oder ein ASCII-Zeichen speichern * 1 Byte groß * ASCII-Zeichern werden auch nur mit ihrem ASCII-Wert gespeichert * Zeichern werden zwischen zwei Hochkommata gestellt: 'A' * 'A' übersetzt a in seinen ASCII-Wert * "A" ist falsch, das ist für ein String * für den Computer sind also 'A' und 65 identisch
46
Warum sollte man char nicht zum Rechnen benutzen, wenn es nicht nötig ist?
Weil nicht festgelet ist ob ein char mit oder ohne Vorzeichen interpretiert wird. Das kann eventell zu fehlern führen.
47
Vorzeichenlose oder Vorzeichenbehaftete Zahl ohne angabe?
Nach dem neusten Standart wird eine Variable nicht explizit mit unsigned deklariert, als signed behandelt, auch beim char.
48
Datentyp: wchar_t
* Für die Darstellung größerer Zeichensätze kann wchar_t verwendet werden * ist in der Headerdatei \ definiert. * ist ein integraler Datentyp * meist 2 oder 4 Byte groß * mindestens so groß wie char und höhstens so groß wie long * Bei der Deklaration muss vor den einzelenen Anführungszeichnen noch das Präfix L gestellt werden * ``` wchar_t ch = L'Z';```
49
Multibyte-Zeichen
Mulitbyte-Zeichen sind eine weitere Möglichkeit größere Zeichensätze zu speichern. Sie verwenden jedoch im Gegensatz zu wchar_t keinen speicherplatz indem die ASCII-Zeichen wirklich nur 1 Byte speicher verbrauchen und nicht 2 oder 4 wie bei wchar_t. Die macht es sehr speichereffizient, kann die Arbeit damit aber auch erheblich schwieriger machen. Lohnt sich also nur, wenn fast ausschließlich ASCII-Zeichen verwendet werden.
50
Boolesche Werte
Boolsche Werte können über die Headerdatei \ eingebunden werden oder durch folgenden Code selbst geschreiben werden: typedef enum {false,true} bool; Ob ihnen false für 0 und true für 1 verwendet werden können, kann mit dem Makro: bool_true_false_are_defined überprüft werden. ## Footnote typedef enum {true,false} bool; ist falsch, da falsch = 0 und true = 1 sein muss, was hier nicht der Fall ist.
51
Zu große Zahlen in einem Datentyp speichern
Wenn zu große Zahlen in einem Datentyp gespeichert werden redet man von einem Überlaufen. Der Wert wird dann um den maximalen Wert des unsigned Datentyps reduziert.
52
limits für Ganzzahl
In der Headerdatei \ sind Makros mit den limits der Ganzzahlen definiert.
53
limits für Gleitpunktzahlen
In der Headerdatei \ sind Makros mit den limits der Gleitpunkttypen definiert.
54
Datentyp: void
Der Typ void ist eingentlich kein echter Datentyp und wird überall verwendet, wo kein Wert benötigt wird oder vorhanden ist * Bei Funktionen, wenn kein Wert zurückgegeben wird * void-Zeigern
55
Ganzzahlige Konstante als unsigned int markieren
Suffix u oder U an Konstante hängen
56
Ganzzahlige Konstante als long markieren
Suffix l oder L an Konstante hängen
57
Ganzzahlige Konstate als unsigned long markieren
Suffix ul oder UL an Konstante hängen
58
Ganzzaahlige Konstate als long long markieren
Suffix ll and Konstante hängen
59
Ganzzahlige Konstante als unsinged long long markieren
Suffix ull an Konstante hängen
60
Vorzeichenlose Gleitpunktzahl definieren
Schlüsselwort unsinged vor den Variablentyp schreiben. Bsp: ``` unsigned float var; ```
61
Konstante als Gleitpunktzahl angeben
Gleitpunktkonstante ist eine Folge von Dezimalziffern mit einem Gleitpunkt oder der Angabe von e oder E. ## Footnote e ist die Verschiebung des Kommas. - verschiebt das Komma nach rechts, + nach links
62
Gleitpunktzahl-Konstante als float markieren
Suffix f oder F an Konstante hängen
63
Gleitpunktzahl-Konstante als long double markieren
suffix l oder L an Konstante hängen
64
Ganzzahlige Konstante: initialer Datentyp
Wenn kein spezifischer Datentyp angegeben ist, ist die Konstante vom Typ int.
65
Gleipunktzahl-Konstate: initialer Datentyp
Wenn kein spezifischer Datentyp angegeben ist, ist die Konstate vom Typ double.
66
Wie ist die intere Darstellung von Zeichenkonstanten
Eine Zeichenkonstate wird intern mit ihren ASCII Wert gespeichert. Also einer Ganzzahl.
67
Zeichenkonstate vom Typ: wchar_t schreiben
Präfix L vor die Konstante. Bsp.: L'a'
68
Formatierungszeichen: signed int
%d, %i
69
Formatierungszeichen: signed long
%ld, %li
70
Formatierungszeichen: signed long long
%lld, %lli
71
Formatierungszeichen: signed short
%hd, %hi
72
Formatierungszeichen: unsigned int
%u
73
Formatierungszeichen: unsigned long
%lu
74
Formatierungszeichen: unsigned long long
%llu
75
Formatierungszeichen: vorzeichenloser int Oktalzahl
%o
76
Formatierungszeichen: vorzeichenloser int Hexzahl
%x, %X ## Footnote (a,b,c,d,e,f) bei x; (A,B,C,D,E,F) bei X
77
Formatierungszeichen: vorzeichenloser long Oktalzahl
%lo
78
Formatierungszeichen: vorzeichenloser long long Oktalzahl
%llo
79
Formatierungszeichen: vorzeichenloser short Okatalzahl
%ho
80
Formatierungszeichen: vorzeichenloser long Hexzahl
%lx, %lX
81
Formatierungszeichen: vorzeichenloser long long Hexzahl
%llx, %llX
82
Formatierungszeichen: vorzeichenloser short Hexzahl
%hx, %hX
83
Formatierungszeichen: float in Gleitpunktform
%f
84
Formatierungszeichen: double in Gleitpunktform
%lf
85
Formatierungszeichen: long double in Gleitpunktform
%Lf
86
Formatierungszeichen: long long double in Gleitpunktform
%LLf
87
Formatierungszeichen: float in Exponentenform
%e, %E ## Footnote ddde+-dd bei e; dddE+-dd bei E
88
Formatierungszeichen: double in Exponentenform
%le, %lE
89
Formatierungszeichen: long double in Exponentenform
%Le, %LE
90
Formatierungszeichen: long long double in Exponentenform
%LLe, %LLE
91
Formatierungszeichen: %a
Wie %f (neu ab C99)
92
Formatierungszeichen: float ohne Ausgabe der nachfolgenden Nullen
%g, %G
93
Formatierungszeichen: Zeichen
%c
94
Formatierungszeichen: breite Zeichen
%lc
95
Formatierungszeichen: Zeichenkette
%s
96
Formatierungszeichen: Zeigerwert
%p
97
Formatierungszeichen: Keine Ausgabe - Dieses Argument ist ein Zeiger auf eine Ganzzahl
%n
98
Formatierungszeichen: Zeichen % ausgeben
%%
99
Ganzzahlen durch %d ausgeben
Alle Ganzzahlen können durch %i ausgegeben werden, beim Einlesen muss aber der spezifische Typ angegeben werden
100
Gleitpunktzahlen durch %f ausgeben
Alle Gleitpunktzahlen können durch %f ausgegeben werden, beim Einlesen muss jedoch der spezifische Typ angegeben werden
101
Formatierungszeichen: bis ein Zeichen eingegeben wurde, das nicht in der Liste bezeichner vorkommt
%[bezeichner] - Wird in einen String eingelesen
102
Formatierungszeichen: bis ein Zeichen eingegeben wurde, das in der Liste bezeichner vorkommt
%[^bezeichner] - Wird in einen String eingelesen
103
Unwandlungszeichen: liste mit Zahlen von Zahl 1 - 9
[1-9]
104
Unwandlungszeichen: liste mit Kleinbuchstaben
[a-z]
105
Umwandlungszeichen: list mit Großbuchstaben
[A-Z]
106
Umwandlungszeichen: liste mit Klein- und Großbuchstaben
[a-zA-Z]
107
Flags bei Formatierungszeichen
Flags stehen direkt hinter % und haben z.B verschiedene Auswirkungen auf die Formatierung und Eingabe- und Ausgabegröße
108
Flag: Es werden maximal n Zeichen eingelesen
n
109
Flag: Linksbündig justieren
-
110
Flag: Ausgabe des Vorzeichens + oder -
+
111
Flag: Ist ein Argument kein Vorzeichen, wird ein Leerzeichen mit ausgegeben
Leerzeichen
112
Flag: Bei numerischer Ausgabe wird mit Nullen bis zur angegebenen Weite aufgefüllt
0
113
Flag: Bei o bzw. x oder X wird der Wert im Formatstring mit vorangestellter 0 bzw. 0x ausgeben
#
114
Flag: bei e, E oder f wird der Wert mit einem Dezimalpunkt ausgegeben, auch wenn keine Nachkommastelle existiert
#
115
Flag: Es werden mindestens n Stellen ausgegeben, auch wenn der Wert weniger als n Stellen hat
n
116
Flag: Der wert des nächsten Arguments (ganzzahlig) legt die Weite fest. Bei negativem Wert wird linksbündig justiert
*
117
Flag: Maximal n Nachkommastellen von Zahl ausgeben
.n ## Footnote hat bei Ganzzahlen keine Wirkung, kann aber trotzdem hingeschreiben werden.
118
Flag: Maximal n Zeichen vom String ausgeben
.n
119
Formatierungszeichen: unsigned short
%hu
120
Formatierungszeichen - Definition
Formatierungszeichen werden für die formatierte Ein- und Ausgabe verwendet um Zeichen im richtigen Format Ein- und Auszugeben. Sie bestehen aus % gefolgt von Flags und dem Umwandlungszeichen, welcher spezifiziert mit welchem Datentyp geartbeitet wird.
121
Modifikation vom Umwandlungszeichne: d,i,o,u,x,X werden als short int bzw. unsigned short int Wert behandelt
h
122
Schreibweise von Modifikationen von Umwandlungszeichen
Modifikation gefolgt vom Unwandlungszeichen ohne Leerzeichen
123
Modifikation vom Unwandlungszeichen: d,i,o,u,x,X werden als long int bzw. unsigned long int Werte behandelt
l
124
Modifikation vom Umwandlungszeichen: e,f oder g werden als double-Wert behandelt
l
125
Modifikation vom Unwandlungszeichen: e, E, f, g, G werden als long double-Wert behandelt.
L
126
Modifikation vom Umwandlungszeichen: d,i,o,u,x,X werden als long long-Werte behandelt
ll, L
127
Modifikation vom Umwandlungszeichen: d,i,o,u,x,X werden als singed char bzw. unsigned char Wert behandelt
hh
128
Modifikation vom Umwandlungszeichen: d,i,o,u,x,X werden als intmax_t bzw. uintmax_t Wert behandelt (neu ab C99)
j
129
Modifikation vom Umwandlungszeichen: d,i,o,u,x,X werden als ptrdiff_t Wert behandelt (neu ab C99)
t
130
Modifikation vom Umwandlungszeichen: d,i,o,u,x,X werden als size_t Wert behandelt
z
131
Datentyp: intmax_t
In der Headerdatei definiert. Größtmögliche ganzzahlige Datentyp.
132
Datentyp: uintmax_t
In der Headerdatei definiert. Größtmöglicher vorzeichenloser ganzzahliger Datentyp.