Kleiner gleich Sechs? Nein. Aber kleiner sechs wäre möglich. Es ist egal ob du sagst kleiner gleich Fünf oder kleiner Sechs, denn beide Male wäre es 0 - 5. Die 5 ist kleiner als 6 und bei kleiner gleich ist die 5 mit eingeschlossen.

Es ist wie in der Mathematik.

Einen Array erstellst du immer mit der wahren Länge: 6 [0, 1, 2, 3, 4, 5]. Das wären somit 6 Steckplätze, die gebraucht werden. Diese fangen aber bei 0 an und hier ist das Umdenken wichtig. Ich habe es auch erst richtig verstanden, als ich den Grund erfahren habe, warum es so ist. Den Grund erfährt man in C / C++, wo Arrays keine Arrays sind, sondern Pointer hinter einer Maske.

Dabei funktioniert es wie folgt: Du hast deine Variable des Arrays. Diese zeigt auf eine Adresse in deinem Speicher. Und nach dieser Adresse kommt eine andere Adresse mit dem nächsten Wert. Du kannst also den Pointer wie folgt rechnen *(Array + Index). Das entspricht dann Array[Index]. An der Adresse von Array ist ja auch bereits ein Speicher. Diesen möchte man nicht leer lassen. Deshalb rechnet man *(Array + 0), was dann Array[0] entspricht. Würde man eine 1 setzen, überspringt man ja einen Bereich, welchen man zur Verfügung hat, aber dann ignoriert. Deshalb wäre das zweite Element auch an Position 1, weil es direkt darauf folgt, also *(Array + 1) oder auch Array[1]. Und deshalb rechnet man dabei immer mit 0 als erste Zahl.

Bei der Länge wiederum fragt man die Länge ab. Die Länge startet nicht bei 0. Du zählst ja nicht 0 1 2 3 ..., sondern 1 2 3 4 ... . Deshalb gibt die Länge auch die Zahl zurück, die du schon beim erstellen des Arrays eingegeben hast. Es ist die tatsächliche Länge. Der einzige Grund des Startes bei 0 ist das Speichermanagement, damit man keinen freien Platz überspringt. Aber zählen tut man trotzdem wie gewohnt.

Deshalb wäre es auch <= 5 oder < 6, wenn man 6 zählen will, da der Steckplatz bei der Adresse des Arrays bereits beginnt und deshalb + 0 gerechnet wird.

...zur Antwort
C# (Unity)
  1. Man fängt nicht mit Unity oder Unreal Engine an. Man lernt erstmal die Programmiersprache. Tust du das nicht, überforderst du dich selbst mit Frameworks, die mit der Sprache selbst nichts zu tun haben.
  2. Warum ich C# wähle? C# ist sehr einfach, aber auch zukunftssicher. Zu dem bietet es, wenn man tiefere Kenntnisse hat, die Möglichkeit Konzepte aus C++ kennenzulernen. Das ermöglicht dann einen möglichen späteren einfacheren Wechsel. Voraussetzung ist, dass man stark C# lernt und nicht, wie viele es tun, bei den Basics stehen bleibt. Viele wissen gar nicht, dass man zum Beispiel auch richtiges Speichermanagement betreiben kann in C#. C++ wird dich als Anfänger womöglich überfordern. Konzepte, die du in C# mit der Zeit lernen kannst, wie Heap, Stack, Speichermanagement usw. sind in C++ als Standard an der Tagesordnung und müssen direkt sitzen. Du erschlägst dich dabei mit Informationen, die du vermeiden könntest. Fängst du mit C# an, bist du in einer sicheren Umgebung, kannst dich aufs lernen Konzentrieren und diese Konzepte dann nachträglich noch lernen.
...zur Antwort

Ich liebe Rust, ich nutze es auch immer und immer öfter ... ABER!

Ich wollte mit einer programmiersprache anfangen, habs auch schon mit python, js, html und css versucht, aber irgendwie passen die meinen erwartungen nicht

Für den Anfang eignet sich C# wirklich gut. Du kannst damit alles programmieren und wenn du meinst, du kannst alles, kannst du tiefer gehen und mit C# Speichermanagement lernen, sodass du irgendwann einen Übergang zu C/C++ schaffst. C# kann komplex, aber auch einfach. Gerade das macht es meiner Meinung nach für Anfänger perfekt.

Ein freund hat mir empfohlen, mit rust anzufangen

Das ist nicht gut. Rust ist eine Programmiersprache, die ganz anderen Konzepten folgt als andere Sprachen. Es wird dich als Anfänger total killen. Selbst viele erfahrene Umsteiger haben Probleme. Auch ich hatte anfangs damit zu kämpfen. Am sinnigsten wäre es mit C# zu starten, wie ich es im Absatz 1 gesagt habe und dich dann zu C / C++ hochzuarbeiten. Wenn du das kannst, kannst du über einen Umstieg zu Rust nachdenken.

kann das wirklich zukunft haben

Rust hat definitiv eine Zukunft. Immer mehr wird darüber diskutiert, sicherheitskritische Software von C oder C++ auf Rust umzuschreiben. Wichtig ist hierbei das Wort Zukunft (Siehe nächsten Absatz).

oft gebraucht von zb firmen

Hier kommen wir zu einem weiteren Problem. Rust ist eine noch sehr junge Sprache. Ich sage die Daten jetzt aus dem Kopf, die Daten können also Variieren, aber so in etwa stimmt es. C++ kam 1985 und hat eine sehr lange Geschichte. Rust hingegen kam erst, keine Ahnung, so um ca. 2015± herum raus. Die Sprache fällt zwar immer mehr ins Gespräch, dies aber meistens eher bei US Firmen und bei Firmen, wo Sicherheit eine Rolle spielt. Hier ist die Sprache noch nicht so angekommen. Jobs findet man eher weniger bis keine. Und wenn du Rust kannst, kannst du nicht gleich andere Sprachen, da es enorme Unterschiede gibt. Deshalb mein Tipp der Absätze von zuvor.

...zur Antwort

Ganz OK, aber: Viele hatten Probleme und können bis heute nicht programmieren. Manche Firmen wollen die Auszubildenden nicht richtig lehren und die Schule ... naja, zumindest bei mir nutzlos. Ich hatte immer unfähige Lehrer. Es ist sehr viel Selbstlernen angesagt. Meiner Meinung nach verschwendete 3 Jahre, aber was solls? 🤷🏻‍♂️

...zur Antwort

Blazor ist keine herkömmliche website, welche nur aus HTML, CSS und JS besteht. Du brauchst einen Server, wie Apache, Kastrel oder sonstige, der auf einem Server oder Desktop PC laufen muss. Erst dann kannst du die Seite aufrufen.

Eine alternative wäre Blazor Hybrid. Es wäre dann in Kombination mit .net Maui und wäre dann auch auf Android als App funktionell

...zur Antwort

Android Debug Bridge (ADB) | Android Studio | Android Developers

Du kannst es auch manuell installieren, vielleicht hilft das

...zur Antwort

Ja, darfst du. Du darfst aber nicht Visual Studio Community verwenden. Du musst dann auf eine der Bezahlvarianten zurückgreifen (soweit ich weiß). C# wiederum ist kein Problem

...zur Antwort

H steht für Heading (Überschrift). In bestimmten Fällen, wie bei Website Reader für Blinde oder ähnliche, können Überschriften so erkannt werden und zum navigieren verwendet werden.

...zur Antwort
Ja (root)

Welches Handy? Mein aktuelles Samsung Galaxy Z Fold 4 nicht, aber mein ganz altes Samsung Galaxy S3 mini, welches selten noch mal verwendet wird. Mein aktuelles Gerät werde ich damit nicht zerstören, dafür ist mir noch zu viel Garantie drauf und es funktioniert zu gut. Bei alten Geräten, sage ich aber grundsätzlich nicht nein

...zur Antwort

Ja und nein. Du kannst andere Sprachen verwenden, die zum Beispiel C# Maui und benutzt Visual Studio. Um einen Mac kommst du aber nicht drum herum

...zur Antwort

Du kannst in viele Sprachen, darunter auch Rust und C#, C und C++ direkt auf den Speicher zugreifen mit beispielsweise Pointern, kannst Speicherbereiche beanspruchen und freigeben. Dies kann dir einen enormen boost geben, wenn du es richtig angehst. Aber auch das Vermeiden von neu Allokationen kann hilfreich sein, denn jede neu Allokation kostet Zeit. Arbeite mehr auf Stack, als auf Heap, da du dann nur wenig selbst dafür verantwortlich bist und keine eigenen Allokationen managen musst. Unnötige Codes entfernen, die Leistung und Zeit brauchen, aber nicht wirklich benötigt werden. Ein Beispiel: Wenn du permanent während deiner Ausführung in die Konsole schreibst, kann das zwar schön anschaulich sein, aber auch von Nachteil in der Performance. In C# habe ich in schnellen Anwendungen kein Logging drin, um sie schnell zu machen.

...zur Antwort

Visual Studio mit .NET Maui. Kannst die App auf Windows und Android testen und auch dafür bauen. Für iOS musst du aber einen Apple Entwickler Account haben + Mac oder iPhone (bin mir bei iPhone nicht 100% sicher). Auch wenn Mac nicht ganz entfällt, kannst du damit erstmal ohne Anfangen

...zur Antwort

Visual Studio für C# und C++, wobei ich C++ sehr selten verwende. Dafür ist es einfach zu gut für diese Sprachen. Selbst mit plugins kommt man mit Visual Studio Code nicht so nah dran.

Visual Studio Code für alles andere (Rust, JS, Java, HTML/CSS, JSON, XML, Yaml, wobei für die letzten 3 auch gerne nur simple Notepad++ dran glauben muss, da diese so simple sind. Notepad++ würde ich jetzt nicht als IDE aufzählen. Visual Studio Code ist eigentlich auch eher ein Editor, doch wegen der Plugins, mache ich mal eine Ausnahme

...zur Antwort
Lesbarkeit ist in der Regel wichtiger

Heutzutage ist die Leistung von Computern und Smartphones so gut, dass wirklich schneller Code nicht mehr benötigt wird. Man legt also mehr Wert auf sauberen Code, welcher einfach und verständlich ist. Es gibt aber Fälle, in denen ist Schnelligkeit wichtiger. Nehmen wir Rust und C# als Beispiel, wo dann unsafe Blöcke schnell mal hinzukommen und Rust, C#, C/C++, ... wenn man mit Pointern arbeitet. Man kann sehr schnell etwas kaputt machen, da die Standard-Checks nicht wirklich auf Pointer wirken. Dadurch muss man hier und da selbst Sicherheitsmaßnahmen implementieren, welche für den eigenen Code optimiert sind. Dies kann zu einen Code Overhead führen, welcher aber trotzdem schneller ist. Grundsätzlich ist mehr Code immer schwieriger zu lesen, weil es mehr ist. Besonders bei weniger erfahrenen Entwicklern kann sowas zu Fragezeichen führen. Ich könnte noch mehr Beispiele nennen, aber das sollte als Beispiel reichen. Kommentare sind natürlich immer wichtig. Der Compiler entfernt diese in der Regel, weshalb sie keine Leistung während der Laufzeit beanspruchen. Kommentare sind aber nicht allmächtig. Ein sehr komplexer Code mit Kommentaren bleibt komplex und muss verstanden werden. Besonders in Bereich der Wartbarkeit ist sauberer und einfach zu lesener Code wichtig und mit der heutigen hardware vereinbar.

...zur Antwort

Das sollte man wissen. Das ist Grundwissen. Das ist natürlich fake. Die können ja nicht mal dein Gerät lesen, wie du siehst. Websites bekommen vom Browser keinen Computer Zugriff. Wenn im Browser so etwas auftaucht, ist das niemals echt

...zur Antwort