Maison développement back-end C++ Quelques observations intéressantes sur l'opérateur ternaire C/C++

Quelques observations intéressantes sur l'opérateur ternaire C/C++

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

Quelques observations intéressantes sur lopérateur ternaire C/C++

Nous savons que l'opérateur ternaire est implémenté à la place de la clause if..else. Il est représenté par ?:. '? Le symbole ' est équivalent à la partie if et ':' est équivalent à la partie else. Les 3 programmes suivants expliquent quelques observations intéressantes dans le cas de l'opérateur ternaire.

Le programme suivant se compile sans aucune erreur. Le type de retour d'une expression ternaire devrait être float (comme exp2), et exp3 (c'est-à-dire un type littéral zéro - int) est implicitement convertible en float.

#include <iostream>
using namespace std;
int main(){
   int test1 = 0;
   float fvalue = 3.111f;
   cout<< (test1 ? fvalue : 0) << endl;
   return 0;
}
Copier après la connexion

Le programme suivant ne sera pas compilé car le compilateur ne peut pas localiser ou trouver le type de retour de l'expression ternaire, ou il n'y a pas de conversion implicite entre exp2 (tableau de caractères) et exp3 (int).

#include <iostream>
using namespace std;
int main(){
   int test1 = 0;
   cout<< test1 ? "A String" : 0 << endl;
   return 0;
}
Copier après la connexion

Le programme suivant peut être capable de se compiler, mais échoue lors de son exécution. Le type de retour d'une expression ternaire est limité au type (char *), mais l'expression renvoie un int, donc le programme échoue. Littéralement, le programme tente d'imprimer la chaîne à la 0ème adresse au moment de l'exécution ou de l'exécution.

#include <iostream>
using namespace std;
int main(){
   int test1 = 0;
   cout << (test1 ? "A String" : 0) << endl;
   return 0;
}
Copier après la connexion
Nous pouvons observer que exp2 est traité comme type de sortie et exp3 pourra être converti en exp2 au moment de l'exécution ou de l'exécution. Si la conversion est considérée comme implicite, le compilateur Insérez le stub converti. Le compilateur générera une erreur si la conversion est traitée comme une opération explicite. Si un compilateur est capable d'ignorer de telles erreurs, le programme peut échouer au moment de l'exécution ou de l'exécution.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

En C/C++, la fonction strcmp() est utilisée pour comparer deux chaînes En C/C++, la fonction strcmp() est utilisée pour comparer deux chaînes Sep 10, 2023 am 11:41 AM

La fonction strcmp() est une fonction de bibliothèque intégrée et elle est déclarée dans le fichier d'en-tête « string.h ». Cette fonction est utilisée pour comparer les arguments de chaîne. Elle compare les chaînes de manière lexicographique, ce qui signifie qu'elle compare les deux chaînes caractère par caractère. Elle démarre la compilation

En C/C++, la fonction fseek() est utilisée pour déplacer la position du pointeur de fichier dans le fichier. En C/C++, la fonction fseek() est utilisée pour déplacer la position du pointeur de fichier dans le fichier. Sep 02, 2023 pm 03:57 PM

fseek() est utilisé en langage C pour déplacer le pointeur de fichier vers un emplacement spécifique. Les décalages et les flux sont les cibles des pointeurs et sont donnés dans les paramètres de fonction. En cas de succès, il renvoie zéro. En cas d'échec, il renvoie une valeur non nulle. Voici la syntaxe de fseek() en langage C : intfseek(FILE*stream,longintoffset,intwhence) Voici les paramètres utilisés dans fseek() : stream− C'est le pointeur utilisé pour identifier le flux. offset - Il s’agit du nombre d’octets à partir de la position. d'où - C'est là que le décalage est ajouté. d'où est donné par les constantes suivantes

Comment détecter un débordement d'entier en C/C++ ? Comment détecter un débordement d'entier en C/C++ ? Aug 31, 2023 pm 01:53 PM

Le seul moyen sûr est de vérifier avant que le débordement ne se produise. Il existe cependant des moyens informels de vérifier le dépassement d'entier. Ainsi, si votre objectif est de détecter un débordement lors de l'ajout d'entiers non signés, vous pouvez vérifier si le résultat est réellement inférieur aux deux valeurs ajoutées. Par exemple, l'exemple de code unsignedintx,y;unsignedintvalue=x+y;booloverflow=value<x;//Alternativement, "value<y" devrait également fonctionner, car si x et y sont tous deux des entiers non signés, s'ils sont ajoutés. et débordement, leurs valeurs ne peuvent être supérieures à aucune d'entre elles, car elles l'exigent

Implémentation du problème du sac à dos 0/1 en C/C++ à l'aide de la méthode branch-and-bound Implémentation du problème du sac à dos 0/1 en C/C++ à l'aide de la méthode branch-and-bound Sep 04, 2023 pm 08:17 PM

L’idée est de réaliser que les méthodes gloutonnes constituent la meilleure solution au problème du sac à dos fractionnaire. Pour vérifier si un nœud spécifique peut nous fournir une meilleure solution, nous calculons la meilleure solution (par nœud) en mettant en œuvre une approche gloutonne. Si la méthode glouton elle-même calcule plus de solutions que la meilleure solution jusqu’à présent, alors nous ne pouvons pas parvenir à une meilleure solution via les nœuds. L'algorithme complet est le suivant : Tous les éléments sont triés par ordre décroissant de rapport valeur par unité de poids afin que la limite supérieure puisse être calculée à l'aide de la méthode gourmande. Initialisez le profit maximum, par exemple maxProfit=0 pour créer une file d'attente vide Q. Les nœuds virtuels de décision créent des arbres et les insèrent ou les mettent en file d'attente dans Q. Le profit et le poids du nœud virtuel sont 0. Effectuez les opérations suivantes lorsque Q n'est pas vide ou vide. créer

Quelques observations intéressantes sur l'opérateur ternaire C/C++ Quelques observations intéressantes sur l'opérateur ternaire C/C++ Sep 15, 2023 pm 07:29 PM

Nous savons que l'opérateur ternaire est implémenté à la place de la clause if..else. Il est représenté par ?:. '? Le symbole 'est équivalent à la partie if et ':' est équivalent à la partie else. Les 3 programmes suivants expliquent quelques observations intéressantes dans le cas de l'opérateur ternaire. Le programme suivant se compile sans aucune erreur. Le type de retour d'une expression ternaire devrait être float (comme dans exp2), et exp3 (c'est-à-dire un type littéral zéro-int) est implicitement convertible en float. #include<iostream>usingnamespacestd;intmain(){ inttest1=0;&

Programme C/C++ pour un algorithme glouton pour trouver le nombre minimum de pièces Programme C/C++ pour un algorithme glouton pour trouver le nombre minimum de pièces Sep 19, 2023 pm 11:01 PM

L'algorithme glouton est un algorithme utilisé pour trouver la solution optimale à un problème donné. L'algorithme glouton fonctionne en trouvant une solution optimale locale pour chaque partie (la solution optimale à une partie du problème), montrant ainsi qu'une solution optimale globale peut être trouvée. Dans ce problème, nous utiliserons l’algorithme Greedy Algorithm pour trouver le nombre minimum de pièces/billets pouvant constituer une somme donnée. Pour cela, nous considérerons toutes les pièces ou billets valides, c'est-à-dire les coupures {1,2,5,10,20,50,100,200,500,2000}. Nous devons renvoyer le nombre de pièces/billets nécessaires pour constituer la somme. Donnons quelques exemples pour mieux comprendre le contexte - Exemple 1 - Entrée : 1231 Sortie : 7 Description - Nous avons besoin de deux billets de 500 roupies

En C/C++, tableau à 4 dimensions En C/C++, tableau à 4 dimensions Sep 01, 2023 pm 11:57 PM

Un tableau à 4 dimensions est un tableau composé de tableaux à 3 dimensions. Algorithme Commencer. Déclarer les variables. Déclarer les éléments du tableau. Prendre les éléments en entrée. Prendre les éléments en entrée. Imprimer les éléments stockés dans le tableau. Fin. Ceci est un exemple de tableau 4D. #include<iostream>usingnamespacestd;intmain(){ inta[2][2][3

Comment utiliser les énumérations en C/C++ ? Comment utiliser les énumérations en C/C++ ? Aug 28, 2023 pm 05:09 PM

L'énumération est un type de données défini par l'utilisateur en langage C. Il est utilisé pour donner des noms aux constantes entières, ce qui rend les programmes plus faciles à lire et à maintenir. Le mot-clé "enum" permet de déclarer une énumération. Voici la syntaxe des énumérations en langage C : enumenum_name{const1, const2,.....} ; Le mot clé enum est également utilisé pour définir les variables de type enum. Il existe deux façons de définir les variables de type enum comme suit. enumweek {dimanche, lundi, mardi,

See all articles