einfuehrung-c.c 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. #include <stdio.h> // Einbinden der Standard-Ein-/Ausgabe-Bibliothek
  2. #include <stdlib.h> // Einbinden der Standard-Bibliothek für Speicherverwaltung
  3. /*#include <string.h> // Einbinden der String-Bibliothek für Zeichenkettenoperationen
  4. #include <stdbool.h> // Einbinden der Bibliothek für boolesche Datentypen
  5. #include <math.h> // Einbinden der Mathematik-Bibliothek für mathematische Funktionen
  6. #include <time.h> // Einbinden der Zeit-Bibliothek für Zeitfunktionen
  7. #include <ctype.h> // Einbinden der Bibliothek für Zeichenklassifikation
  8. #include <limits.h> // Einbinden der Bibliothek für Grenzwerte von Datentypen
  9. #include <float.h> // Einbinden der Bibliothek für Grenzwerte von Gleitkommaaen
  10. #include <errno.h> // Einbinden der Bibliothek für Fehlercodes
  11. #include <assert.h> // Einbinden der Bibliothek für Assertions
  12. #include <stddef.h> // Einbinden der Bibliothek für Standard-Definitions
  13. #include <stdint.h> // Einbinden der Bibliothek für feste Breiten von Ganzaen
  14. #include <inttypes.h> // Einbinden der Bibliothek für formatierte Ein-/Ausgabe von Ganzaen
  15. #include <locale.h> // Einbinden der Bibliothek für Lokalisierung
  16. #include <wchar.h> // Einbinden der Bibliothek für breite Zeichen
  17. #include <wctype.h> // Einbinden der Bibliothek für breite Zeichenklassifikation
  18. #include <stdarg.h> // Einbinden der Bibliothek für variable Argumentlisten
  19. #include <tgmath.h> // Einbinden der Bibliothek für typgenerische Mathematik
  20. #include <complex.h> // Einbinden der Bibliothek für komplexe aen
  21. #include <fenv.h> // Einbinden der Bibliothek für Fließkomma-Umgebungen
  22. #include <signal.h> // Einbinden der Bibliothek für Signalbehandlung
  23. #include <setjmp.h> // Einbinden der Bibliothek für nicht-lokale Sprünge
  24. #include <stddef.h> // Einbinden der Bibliothek für Standard-Definitions
  25. #include <uchar.h> // Einbinden der Bibliothek für UTF-16 und UTF-32 Zeichen
  26. // Dies sind die wichtigsten Standard-Bibliotheken in C17. Je nach Anwendungsfall können weitere Bibliotheken erforderlich sein.
  27. https://www.learn-c.org/de zum lernen von C
  28. */
  29. // Beispiel einer Funktion in C
  30. int foo(int bar) {
  31. /* do something */
  32. return bar * 2;
  33. }
  34. // Funktionsdeklaration print_big
  35. int print_big(int number);
  36. // Definition einer Struktur (Person) in C
  37. struct person {
  38. char * name;
  39. int age;
  40. };
  41. // Hauptfunktion des Programms
  42. int main() {
  43. printf("Dies ist ein Beispielprogramm\n");
  44. int a = 0, b = 1, c = 2, d = 3, e = 4;
  45. a = b - c + d * e;
  46. printf("%d\n", a); /* will print 1-2+3*4 = 11 */
  47. // Notendurchschnitt berechnen via Array
  48. int grades[3];
  49. int average;
  50. grades[0] = 80;
  51. grades[1] = 85;
  52. grades[2] = 90;
  53. average = (grades[0] + grades[1] + grades[2]) / 3;
  54. printf("The average of the 3 grades is: %d\n", average);
  55. int numbers[10]; // Deklaration eines Arrays mit 10 Ganzaen
  56. for (int i = 0; i < 10; i++) {
  57. numbers[i] = (i + 1) * 10; // Initialisierung des Arrays mit Vielfachen von 10
  58. printf("numbers[%d] = %d\n", i, numbers[i]); // Ausgabe der Werte im Array
  59. }
  60. // Berechnung der Fakultät von 10 via Array und for-Schleife
  61. int array[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
  62. int factorial = 1;
  63. int i;
  64. for (i = 0; i < 10; factorial *= array[i++]);
  65. printf("10! is %d.\n", factorial);
  66. int n = 0;
  67. while (1) {
  68. n++;
  69. if (n == 10) {
  70. break;
  71. }
  72. }
  73. // Aufruf der Funktion print_big mit verschiedenen Werten
  74. int array2[] = { 1, 11, 2, 22, 3, 33 };
  75. int j;
  76. printf("Print Big Funktion\n");
  77. for (j = 0; j < sizeof(array2) / sizeof(array2[0]); j++) {
  78. print_big(array2[j]);
  79. }
  80. // Funktion Foo aufrufen
  81. foo(5);
  82. printf("%d Foo Funktion\n", foo(5));
  83. //pointer Beispiel
  84. int f = 1;
  85. int * pointer_to_f = &f; /* pointer_to_f speichert die Adresse von f */
  86. printf("Der Wert von f ist %d\n", f);
  87. printf("Der Wert von f ist auch %d\n", *pointer_to_f); /* dereferenzieren des Zeigers */
  88. /* lass uns die Variable f veraendern */
  89. f += 1;
  90. /* wir haben die Variable f gerade schon wieder veraendert! */
  91. *pointer_to_f += 1;
  92. /* wir werden 3 ausgeben */
  93. printf("Der Wert von f ist jetzt %d\n", f);
  94. // Struktur Beispiel
  95. typedef struct {
  96. char * brand;
  97. int model;
  98. } vehicle;
  99. vehicle mycar;
  100. mycar.brand = "Ford";
  101. mycar.model = 2007;
  102. printf("Mein Auto ist ein %s Modell %d\n", mycar.brand, mycar.model);
  103. // Ende Hauptfunktion des Programms
  104. return 0;
  105. }
  106. // Funktion, die prüft, ob eine a größer als 10 ist und eine Nachricht ausgibt
  107. int print_big(int number) {
  108. if(number > 10){
  109. printf("%d ist groß\n", number);
  110. }
  111. }