GlĂŒhwein mit oder ohne Alkohol?
Zum AufwÀrmen: Ist eine Variable vom Typ int immer 4 Byte (32 Bits) gro�
Die genaue GröĂe eines Integers hĂ€ngt von der Wortbreite der Prozessorarchitektur ab.
Zum AufwĂ€rmen: Welches sind gĂŒltige Bezeichner fĂŒr Variablen?
geht_so!cr7TachdoubleB und C
Siehe Kapitel 2, Folien zum Thema Bezeichner.
Erlaubte Zeichen: a-z, A-Z, 0-9 und _
Frage: Welches ist kein SchlĂŒsselwort in C?
charboolififdefbool ist mittlerweile Teil des C-Standards. In Àlteren Versionen muss aber noch stdbool.h inkludiert werden.
ifdef ist nicht Teil der C-Sprache an sich, sondern gehört zum PrÀprozessor
Frage: Und wie ist das Ergebnis von -4712 % 1200?
Welchen Wert hat die Variable b?
Â
a ist bereits gröĂer als der maximale Wert eines vorzeichenlosen Integers
a + 3 entspricht 0 + 3a ist bereits gröĂer als der maximale Wert eines vorzeichenbehafteten Integers-INT_MAX)
2147483648D = 10000000 00000000 00000000 00000000B-21474836481 addieren#include <stdio.h>
int main() {
int arr[] = { 42, 42, 21 };
printf("%d\n", arr[3]);
return 0;
}
Frage: Und wie lang ist wort wirklich?
Â
#include <stdio.h>
#include <string.h>
int main() {
char wort[] = "Eins\0Zwei\0Drei\0";
printf("%lu\n", strlen(wort));
printf("%lu\n", sizeof(wort));
}
#include <stdio.h>
int main() {
int lauf = 0, foo = 0;
do {
if (lauf % 2 == 0) {
if (foo) {
foo += 3;
} else {
foo = 3;
}
}
if (foo % 9 == 0) {
break;
}
lauf++;
} while (lauf);
printf("lauf = %d, foo = %d\n", lauf, foo);
return 0;
}
Frage: Wie sieht die dritte Zeile der Ausgabe aus?
#include <stdio.h>
int main() {
for (int i = 0; i < 100; ++i) {
if (i % 5 != 0) {
continue;
}
printf("%d: ", i);
for (int k = 3; k > 0; --k) {
printf("%d ", k);
}
printf("\n");
}
return 0;
}
Frage: HĂ€ngt die GröĂe eines Zeigers von dem Datentyp / der Datenstruktur ab, auf die er zeigt?
Er hÀngt nur von der Wortbreite der Prozessorarchitektur ab.
#include <stdio.h>
int main() {
int a = 42;
int arr[] = {4, 3, 2, 1};
int *p1 = &a, *p2 = arr + 3;
*p1 = 3;
arr[3] = 4711;
p1 = p2;
arr[1] = -1;
p2 -= 2;
*p2 = 1;
printf("&a: %p\narr: %p\n", &a, arr);
printf("[0]: %p, [1]: %p, [2]: %p, [3]: %p\n",
&(arr[0]), &(arr[1]), &(arr[2]), &(arr[3]));
printf("p1: %p\n", p1);
printf("p2: %p\n", p2);
return 0;
}
#include <stdio.h>
int main() {
const int n = 10, m = n / 2;
int *x = new int[n];
int *y = x + m;
for (int i = 0; i < m; ++i) {
x[i] = i;
y[i] = (m - i);
}
for (int i = 0; i < n; ++i) {
printf("%d,", x[i]);
}
printf("\n");
}
#include <stdio.h>
int main() {
int a[10];
int sum = 0;
for (int i = 0; i < 10; ++i) {
a[i] = i + i;
}
for (int i = 0; i < 20; ++i) {
sum = a[i];
}
printf("sum = %d\n", sum);
return 0;
}
Frage: Was ist die Ausgabe des Programms?
#include <stdio.h>
static int sum(int *x, int n) {
int ret = 0;
for (int i = 0; i < n; ++i) {
ret += x[i];
x[i] = 1;
}
return ret;
}
int main() {
int a[] = { 10, 5, 3, 2, 1};
printf("sum = %d, sum = %d\n", sum(a, 5), sum(a, 5));
}
Frage: Welchen Wert hat depth?
0, falls nicht explizit gesetzt)#include <stdio.h>
struct Object3D {
unsigned int width;
unsigned int height;
unsigned int depth;
};
int main() {
struct Object3D obj1 = { .width = 3, .height = 4 };
printf("width = %d, height = %d, depth = %d\n",
obj1.width, obj1.height, obj1.depth);
}
Was ist die Ausgabe des Programms?
#include <stdio.h>
struct Rectangle {
int x, y;
int width, height;
};
static struct Rectangle* newRectangle() {
struct Rectangle rect = {0, 0, 10, 20};
return ▭
}
int main() {
struct Rectangle* rect = newRectangle();
printf("width = %d, height = %d\n", rect->width, rect->height);
}
Frage: Was ist die Ausgabe des Programms?
#include <stdio.h>
int cnt = 0;
int fak(int n) {
int cnt = 0;
if (n == 0) {
++cnt;
return 1;
}
{
extern int cnt;
++cnt;
}
return n * fak(n - 1);
}
int main() {
printf("fak(5) = %d", fak(5));
printf(", cnt = %d\n", cnt);
}
Was passiert bei dem Aufruf von fak(10000)?
#include <stdio.h>
int main() {
char quelle[] = "Qivv} \\-Qew";
char ziel[12] = { 0 };
int i = 0;
for (char *c = quelle; *c != '\0'; c++, i++) {
if (*c == ' ' || *c == '-') {
ziel[i] = *c;
continue;
}
ziel[i] = *c - 4;
}
printf("%s\n", ziel);
}
đ Alles Gute und einen guten Rutsch! Bis 2026! đ