Evgenii Legotckoi
Evgenii Legotckoi12. Mai 2017 13:06

C++ - Tutorial 002. Typen, Variablen und Arithmetik

Jede Variable oder jeder Ausdruck hat seinen eigenen Datentyp, z. B. Deklaration

int some_variable;

gibt an, dass die Variable irgendeine_Variable vom Integer-Typ int. ist

Die Deklaration ermöglicht es Ihnen, eine Variable in das Programm einzuführen. Diese Variable hat einen Datentyp: Ganzzahl, Fließkomma, Zeichen im Fall von grundlegenden Datentypen oder benutzerdefinierten Typ (Datenstruktur, Klasse). Der Typ einer Variablen bestimmt den Satz von Operationen, die an der Variablen ausgeführt werden können. Die Deklaration einer Variablen bestimmt die Belegung des dafür benötigten Speicherbereichs. Sowie der Wert dieser Variablen, der aus Sicht des Computers eine Folge von Bits sein wird. Die Deklaration einer Variablen trägt auch den Namen, mit dem der Programmierer im Programmcode auf diese Variable verweist.

Im obigen Beispiel haben wir eine Variable vom Typ Basis Integer, mit der Rechenoperationen, Vergleiche, Zuweisungen etc. durchgeführt werden können. Wir werden diese Variable im Programmcode mit dem Namen irgendeine_Variable bezeichnen.**


Grundlegende Datentypen

C++ bietet die folgenden grundlegenden Datentypen.

Leere

void ist ein Datentyp mit einem leeren Wertesatz. Es ist in Arbeit und kann nicht für Objekte und Variablen festgelegt werden. Es ist jedoch erlaubt, void-Zeiger zu verwenden sowie void als Rückgabewert von Funktionen zu verwenden.

nullptr

nullptr ist ein spezieller Datentyp, der per se kein Typ ist, da er nicht als Variablentyp gesetzt werden kann, aber als Nullzeiger verwendet werden kann. Dieser Typ wurde in den C++11-Standard eingeführt anstelle der implementierungsdefinierten Null-Makrokonstante NULL.

boolesch

bool ist ein boolescher Datentyp, der den Wert true oder false annehmen kann. Die Speichermenge, die dieser Datentyp belegt, kann je nach Implementierung im Zielsystem von 1 abweichen. Sie können die Größe mit dem Operator sizeof(bool). bestimmen.

Zeichentypen

char - Zeichentypen werden verwendet, um Textzeichen darzustellen. Die Größe des Zeichentyps char beträgt 1 Byte, wodurch 256 verschiedene Zeichen enthalten sein können. Eine Darstellung aller Zeichen finden Sie in der ASCII-Zeichentabelle.

Zeichendatentypen werden in drei Typen unterteilt:

  • signiertes Zeichen - signierter Typ
  • unsigned char - vorzeichenloser Typ
  • char ist ein separater Typ, der entweder signiert oder unsigniert sein kann, je nachdem, wie der Compiler den Code verarbeitet.

Der Unterschied liegt im Wertebereich, zum Beispiel:

  • Zeichen -128...127
  • Zeichen ohne Vorzeichen 0...255

char kann verwendet werden, um Integer-Werte zu speichern, die ein Byte nicht überschreiten, aber es ist besser, den Int-Typ für Integer-Werte zu verwenden. Dies ist jedoch für eingebettete Systeme mit einer harten Einschränkung akzeptabel Menge an Speicher.

Es gibt auch spezielle Arten von Zeichendaten:

  • wchar_t ist ein Typ zur Darstellung von Zeichen, die kein einziges Byte haben. Dies kann 32 Bit für Betriebssysteme sein, die UNICODE unterstützen, oder 16 Bit für die Windows-Notation für UTF-16.
  • char16_t - Typ zur Darstellung von UTF-16, eingeführt im C++11 -Standard.
  • char32_t - Typ zur Darstellung von UTF-32, eingeführt im C++11 -Standard.

int

int - ganzzahliger Datentyp. Modifikatoren können verwendet werden, um die für diesen Datentyp zugewiesene Speichermenge zu bestimmen. Wenn keine Modifikatoren vorhanden sind, ist garantiert, dass die Größe des Datentyps mindestens 16 Bit beträgt. Auf den meisten 32/64-Bit-Systemen ist jedoch garantiert, dass der Footprint mindestens 32 Bit beträgt.

Modifikatoren

Vorzeichenmodifikatoren

  • signed - Darstellung des signierten Datentyps (wenn weggelassen, wird er standardmäßig angenommen)
  • unsigned - Darstellung eines vorzeichenlosen Datentyps.

Größenmodifikatoren

  • kurz - Der Zieltyp ist auf eine Größe von mindestens 16 Bit optimiert
  • lang - Der Zieltyp ist für eine Größe von mindestens 32 Bit optimiert

Der Modifikator long kann zweimal auf den Datentyp angewendet werden, was zu einer Optimierung des Variablenspeicherplatzes von mindestens 64 Bit führt. Diese Optimierung wurde im C++11-Standard eingeführt.

lang lang int

Größen- und Vorzeichenmodifikatoren können auch kombiniert werden.

signiert lang lang int

Fließkommadatentypen

  • float - 32-Bit-Gleitkommadatentyp.
  • double - 64-Bit-Gleitkommadatentyp.
  • long double - erweiterter Gleitkommadatentyp, eingeführt im C++11-Standard.

Bei der Softwareentwicklung merkt man übrigens anhand dieser Datentypen, welcher Entwickler mit reinem C und welcher mit C++ angefangen hat. Die allgemeine Verwendung von float ist typisch für Entwickler, die mit C begonnen haben, double ist typisch für C++-Entwickler.

Variablen

Variablen können also beispielsweise die oben aufgeführten Datentypen haben:

int a = 12;       // Целочисленный тип, переменная равна 12
double b = 12.25; // Вещественный тип с плавающей точкой двойной точности, переменная равна 12.25
char c = 'a';     // Символьный тип, переменная равна символу "a"

Variablen können auf verschiedene Arten initialisiert werden.

double a1 = 2.3;
double a2 = {2.3};
double a3 {2.3};

Die Klammerinitialisierung wurde im C++11-Standard eingeführt. Die Initialisierung mit geschweiften Klammern erlaubt keine implizite Konvertierung, daher gibt der Compiler in den folgenden Fällen einen Fehler aus.

int d1 = {2.3};
int d2 {2.3};

automatisch

Um Variablen im C++11-Standard zu deklarieren, wurde außerdem der Bezeichner auto eingeführt, mit dem Sie eine Variable deklarieren können, ohne einen Typ anzugeben. In diesem Fall wird der Typ vom Initialisierer abgeleitet, dh der Wert, der der Variablen zugewiesen wird. Daher kann auto nicht ohne Initialisierer verwendet werden, d.h.

// Правильный, рабочий вариант
auto a = 14; 
// Не правильный вариант, не скомпилируется
auto b;
b = 15;

Der Spezifizierer auto kann verwendet werden, um Lambda-Funktionen oder Variablen mit einer sehr komplexen Deklaration zu deklarieren, was zu einer Vereinfachung des Programmcodes führt.

Arithmetik

Sie können verschiedene arithmetische Operationen mit Variablen der Grundtypen durchführen:

x+y   // сложение
+x    // унарный плюс
x-y   // вычитание
-x    // унарный минус
x*y   // умножение
x/y   // деление
x%y   // остаток от деления

Es ist auch möglich, Vergleichsoperationen zu verwenden:

x==y  // равно
x!=y  // не равно
x<y   // меньше чем
x>y   // больше чем
x<=y  // меньше чем или равно
x>=y  // больше чем или равно

Neben arithmetischen und logischen Operationen bietet die C++-Funktionalität spezifischere Operationen:

x+=y  // x = x+y
++x   // increment: x = x+1
x−=y  // x = x-y
−−x   // decrement: x = x-1
x∗=y  // x =x*y
x/=y  // x = x/y
x%=y  // x = x%y
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

KL
  • 13. Mai 2017 02:31

Переменная аuto доступна для использования в Qt?

Да, доступна. Только нужно использовать стандарт C++11, но насколько помню, Вы используете устаревшие стандарты C++, поэтому у вас вряд ли она будет работать.

Kommentare

Nur autorisierte Benutzer können Kommentare posten.
Bitte Anmelden oder Registrieren
Letzte Kommentare
ИМ
Игорь Максимов5. Oktober 2024 07:51
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas55. Juli 2024 11:02
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
k
kmssr8. Februar 2024 18:43
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25. Dezember 2023 10:30
Boost - statisches Verknüpfen im CMake-Projekt unter Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
Jetzt im Forum diskutieren
J
JacobFib17. Oktober 2024 03:27
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
JW
Jhon Wick1. Oktober 2024 15:52
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Кирилл Гусарев27. September 2024 09:09
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
F
Fynjy22. Juli 2024 04:15
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

Folgen Sie uns in sozialen Netzwerken