Heim Backend-Entwicklung C++ Einige interessante Beobachtungen zum ternären C/C++-Operator

Einige interessante Beobachtungen zum ternären C/C++-Operator

Sep 15, 2023 pm 07:29 PM
三元运算符 c/c beobachten

Einige interessante Beobachtungen zum ternären C/C++-Operator

Wir wissen, dass der ternäre Operator anstelle der if..else-Klausel implementiert ist. Es wird durch ?: dargestellt. '? Das '-Symbol entspricht dem if-Teil und ':' entspricht dem else-Teil. Die folgenden 3 Programme erklären einige interessante Beobachtungen im Fall des ternären Operators.

Das folgende Programm lässt sich fehlerfrei kompilieren. Es wird erwartet, dass der Rückgabetyp eines ternären Ausdrucks float ist (wie exp2), und exp3 (d. h. ein literaler Null-Int-Typ) ist implizit in float konvertierbar.

#include <iostream>
using namespace std;
int main(){
   int test1 = 0;
   float fvalue = 3.111f;
   cout<< (test1 ? fvalue : 0) << endl;
   return 0;
}
Nach dem Login kopieren

Das folgende Programm lässt sich nicht kompilieren, weil der Compiler den Rückgabetyp des ternären Ausdrucks nicht finden oder finden kann oder es keine implizite Konvertierung zwischen exp2 (char array) und exp3 (int) gibt.

#include <iostream>
using namespace std;
int main(){
   int test1 = 0;
   cout<< test1 ? "A String" : 0 << endl;
   return 0;
}
Nach dem Login kopieren

Das folgende Programm kann möglicherweise kompiliert werden, schlägt jedoch bei der Ausführung fehl. Der Rückgabetyp eines ternären Ausdrucks ist auf den Typ (char *) beschränkt, der Ausdruck gibt jedoch ein int zurück, sodass das Programm fehlschlägt. Im wahrsten Sinne des Wortes versucht das Programm, die Zeichenfolge zur Ausführungszeit oder Laufzeit an der 0. Adresse zu drucken.

#include <iostream>
using namespace std;
int main(){
   int test1 = 0;
   cout << (test1 ? "A String" : 0) << endl;
   return 0;
}
Nach dem Login kopieren
Wir können beobachten, dass exp2 als Ausgabetyp behandelt wird und exp3 zur Ausführungszeit oder Laufzeit in exp2 konvertiert werden kann. Wenn die Konvertierung als implizit betrachtet wird, wird dies der Compiler tun Konvertierten Stub einfügen. Der Compiler gibt einen Fehler aus, wenn die Konvertierung als expliziter Vorgang behandelt wird. Wenn ein Compiler solche Fehler ignorieren kann, schlägt das Programm möglicherweise zur Ausführungszeit oder zur Laufzeit fehl.

Das obige ist der detaillierte Inhalt vonEinige interessante Beobachtungen zum ternären C/C++-Operator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

In C/C++ wird die Funktion strcmp() zum Vergleichen zweier Zeichenfolgen verwendet In C/C++ wird die Funktion strcmp() zum Vergleichen zweier Zeichenfolgen verwendet Sep 10, 2023 am 11:41 AM

Die Funktion strcmp() ist eine integrierte Bibliotheksfunktion und wird in der Headerdatei „string.h“ deklariert. Diese Funktion wird zum Vergleichen der Zeichenfolgenargumente verwendet. Sie vergleicht Zeichenfolgen lexikografisch, was bedeutet, dass sie beide Zeichenfolgen Zeichen für Zeichen vergleicht. Sie startet comp

In C/C++ wird die Funktion fseek() verwendet, um die Position des Dateizeigers in der Datei zu verschieben. In C/C++ wird die Funktion fseek() verwendet, um die Position des Dateizeigers in der Datei zu verschieben. Sep 02, 2023 pm 03:57 PM

fseek() wird in der C-Sprache verwendet, um den Dateizeiger an einen bestimmten Ort zu verschieben. Offsets und Streams sind die Ziele von Zeigern und werden in Funktionsargumenten angegeben. Bei Erfolg wird Null zurückgegeben. Wenn dies nicht gelingt, wird ein Wert ungleich Null zurückgegeben. Das Folgende ist die Syntax von fseek() in der C-Sprache: intfseek(FILE*stream,longintoffset,intwhence) Hier sind die in fseek() verwendeten Parameter: stream− Dies ist der Zeiger, der zur Identifizierung des Streams verwendet wird. offset - Dies ist die Anzahl der Bytes ab der Position. wherece-Hier wird der Offset hinzugefügt. woher wird durch die folgenden Konstanten gegeben

Wie erkennt man einen Ganzzahlüberlauf in C/C++? Wie erkennt man einen Ganzzahlüberlauf in C/C++? Aug 31, 2023 pm 01:53 PM

Der einzig sichere Weg besteht darin, dies zu überprüfen, bevor der Überlauf auftritt. Es gibt jedoch einige informelle Möglichkeiten, auf einen Ganzzahlüberlauf zu prüfen. Wenn Sie also beim Addieren vorzeichenloser Ganzzahlen einen Überlauf erkennen möchten, können Sie prüfen, ob das Ergebnis tatsächlich kleiner als die beiden addierten Werte ist. Beispielsweise sollte der Beispielcode unsignedintx,y;unsignedintvalue=x+y;booloverflow=value<x;//Alternativ auch „value<y“ funktionieren. Dies liegt daran, dass x und y beide Ganzzahlen ohne Vorzeichen sind, wenn sie addiert werden und Überlauf, ihre Werte können nicht größer sein als jeder von ihnen, wie sie es erfordern

Implementierung des 0/1-Knapsack-Problems in C/C++ mithilfe der Branch-and-Bound-Methode Implementierung des 0/1-Knapsack-Problems in C/C++ mithilfe der Branch-and-Bound-Methode Sep 04, 2023 pm 08:17 PM

Die Idee besteht darin, die Tatsache zu erkennen, dass Greedy-Methoden die beste Lösung für das fraktionierte Rucksackproblem darstellen. Um zu überprüfen, ob ein bestimmter Knoten uns eine bessere Lösung bieten kann, berechnen wir die beste Lösung (je Knoten) mithilfe eines Greedy-Ansatzes. Wenn die Greedy-Methode selbst mehr Lösungen als die bisher beste Lösung berechnet, können wir über die Knoten nicht zu einer besseren Lösung gelangen. Der vollständige Algorithmus sieht wie folgt aus: Alle Artikel werden in absteigender Reihenfolge des Wertes pro Gewichtseinheit sortiert, sodass die Obergrenze mithilfe der Greedy-Methode berechnet werden kann. Initialisieren Sie den maximalen Gewinn, zum Beispiel maxProfit=0, um eine leere Warteschlange Q zu erstellen. Virtuelle Entscheidungsknoten erstellen Bäume und fügen sie in Q ein oder stellen sie in eine Warteschlange. Der Gewinn und das Gewicht des virtuellen Knotens sind 0. Führen Sie die folgenden Vorgänge aus, wenn Q nicht leer oder leer ist. erstellen

Einige interessante Beobachtungen zum ternären C/C++-Operator Einige interessante Beobachtungen zum ternären C/C++-Operator Sep 15, 2023 pm 07:29 PM

Wir wissen, dass der ternäre Operator anstelle der if..else-Klausel implementiert wird. Es wird durch ?: dargestellt. '? Das „Symbol“ entspricht dem if-Teil und „:“ entspricht dem else-Teil. Die folgenden 3 Programme erklären einige interessante Beobachtungen im Fall des ternären Operators. Das folgende Programm wird ohne Fehler kompiliert. Der Rückgabetyp eines ternären Ausdrucks ist voraussichtlich float (wie in exp2), und exp3 (d. h. ein literaler Null-Int-Typ) kann implizit in float konvertiert werden. #include<iostream>usingnamespacestd;intmain(){ inttest1=0;&

C/C++-Programm für einen gierigen Algorithmus zum Ermitteln der Mindestanzahl an Münzen C/C++-Programm für einen gierigen Algorithmus zum Ermitteln der Mindestanzahl an Münzen Sep 19, 2023 pm 11:01 PM

Der Greedy-Algorithmus ist ein Algorithmus, der verwendet wird, um die optimale Lösung für ein bestimmtes Problem zu finden. Der Greedy-Algorithmus funktioniert, indem er für jeden Teil eine lokal optimale Lösung findet (die optimale Lösung für einen Teil des Problems) und zeigt so, dass eine globale optimale Lösung gefunden werden kann. In diesem Problem verwenden wir den Greedy-Algorithmus, um die Mindestanzahl an Münzen/Banknoten zu ermitteln, aus denen eine bestimmte Summe bestehen kann. Dabei berücksichtigen wir alle gültigen Münzen oder Banknoten, also die Nennwerte {1,2,5,10,20,50,100,200,500,2000}. Wir müssen die Anzahl Münzen/Banknoten zurückgeben, die für die Summe erforderlich sind. Lassen Sie uns einige Beispiele geben, um den Kontext besser zu verstehen – Beispiel 1 – Eingabe: 1231 Ausgabe: 7 Beschreibung – Wir benötigen zwei 500-Rupien-Scheine

Wie verwende ich Aufzählungen in C/C++? Wie verwende ich Aufzählungen in C/C++? Aug 28, 2023 pm 05:09 PM

Aufzählung ist ein benutzerdefinierter Datentyp in der C-Sprache. Es wird verwendet, um ganzzahligen Konstanten Namen zu geben, wodurch Programme einfacher zu lesen und zu warten sind. Das Schlüsselwort „enum“ wird verwendet, um eine Aufzählung zu deklarieren. Das Folgende ist die Syntax von Aufzählungen in der C-Sprache: enumenum_name{const1, const2,.....}; Das Schlüsselwort enum wird auch zum Definieren der Variablen des Ofenumtyps verwendet. Es gibt zwei Möglichkeiten, den Variablenofenumtyp wie folgt zu definieren. enumweek{Sonntag, Montag, Dienstag,

In C/C++ ein 4-dimensionales Array In C/C++ ein 4-dimensionales Array Sep 01, 2023 pm 11:57 PM

Ein 4-dimensionales Array ist ein Array, das aus dreidimensionalen Arrays besteht. AlgorithmusBegin.Declarethevariables.Declarethearrayelements.Takethenoofelementsasinput.Taketheelementsasinput.Printtheelementsstoreinarray.End.Dies ist ein Beispiel für ein 4D-Array. #include<iostream>usingnamespacestd;intmain(){ inta[2][2][3

See all articles