Maison  >  Article  >  développement back-end  >  Chapitre 4 C++ : Concept d'expression-Application des opérateurs

Chapitre 4 C++ : Concept d'expression-Application des opérateurs

php是最好的语言
php是最好的语言original
2018-08-06 10:40:081818parcourir

Présente les opérateurs définis par le langage lui-même et utilisés pour les opérandes de type intégrés, et présente brièvement plusieurs opérateurs définis par la bibliothèque standard.

Chapitre 4 Expressions

Concepts de base

  • Opérateur unaire : Agit sur un opérande Opérateur

  • Opérateur binaire : L'opérateur

  • qui agit sur deux opérandes est aussi un appel de fonction Un opérateur spécial qui n'a pas de limite sur le nombre d'opérandes

  • Lvalue : Lorsqu'un objet est utilisé comme lvalue, l'identité de l'objet (emplacement en mémoire) est utilisée).

  • Rvalue : Lorsqu'un objet est utilisé comme rvalue, la valeur (contenu) de l'objet est utilisée.

Ordre d'évaluation

  • Dans la plupart des cas, l'ordre d'évaluation n'est pas explicitement spécifié. Il n'y a que quatre opérateurs qui spécifient explicitement l'ordre dans lequel leurs opérandes sont évalués :

    1. 逻辑与运算符(&&):先求左侧才求右侧,只有当左侧为真时才计算右侧的值2. 逻辑或运算符(||)3. 条件运算符(?:)4. 逗号运算符(,)

Opérateurs arithmétiques

bool b = true;bool b2 = -b;   //b2是true。-1不等于0,所以b2的值为真
  • C+ +11 stipule que les quotients doivent être arrondis à 0 (c'est-à-dire que la partie décimale est directement coupée).

  • Si m%n n'est pas égal à 0, son signe est le même que m :

    (-m)/n 和 m/(-n) 都等于 -(m/n)
    m%(-n) 等于 m%n(-m)%n 等于 -(m%n)

Opérateur logique et relationnel

Les opérateurs relationnels agissent sur les types arithmétiques ou pointeurs, et les opérateurs logiques agissent sur tout type pouvant être converti en valeur booléenne.
- Leurs valeurs de retour sont toutes de type booléen.

ET logique&&, OU logique||

  • Évaluation de court-circuit

Opérateurs relationnels

Les résultats d'évaluation des opérateurs relationnels sont des valeurs booléennes, et leur utilisation ensemble produira des résultats inattendus :

if(i < j < k)   //若k大于1则为真

doit être remplacé par :

if(i < j && j < k)

Opérateur d'affectation

  • L'opérande gauche de l'opérateur d'affectation doit être une lvalue modifiable.

  • Si les opérandes gauche et droit de l'opérateur d'affectation ont des types différents, l'opérande droit sera converti en type de l'opérande gauche.

L'opération d'affectation satisfait à la bonne loi associative

int i, j;
i = j = 0;  //正确,都被赋值为0

Opérateur conditionnel ?:

cond ? expr1 : expr2

satisfait à la bonne loi associative, et la L'opérande est généralement le suivant. Combinaison d'ordre de droite à gauche.

Les opérateurs de bits

agissent sur des opérandes de type entier et un type de bibliothèque standard appelé bitset. L'opérateur

~   :位求反
<<  :左移
>>  :右移
&   :位与
^   :位异或|   :位或

sizeof

renvoie le nombre d'octets occupés et la valeur résultante est un type size_t.

有如下两种形式:sizeof(type)sizeof expr
  • satisfait à la bonne loi associative.

Conversion de type

Conversion de type implicite

Dans la plupart des cas, un tableau est converti en pointeur.
- Lorsqu'un tableau est utilisé comme argument de mot-clé decltype ou comme opérande d'opérateurs tels que l'opérateur d'adresse (&), sizeof et typeid, la conversion ci-dessus ne se produit pas.

Afficher la conversion

  • Conversion du nom de distribution nommé

cast-name<type>(expression)

Le nom de distribution a les types suivants :

dynamic_cast        //运行时类型识别static_cast         //只要不包含底层const,均可进行强制类型转换,告诉编译器不在乎精度损失const_cast          //只能改变运算对象的底层const,称为去掉cast性质(cast away the const)。将常量对象转换为非常量对象。reinterpret_cast    //

Référence : C++ Primer Fifth Edition

Présente les opérateurs définis par le langage lui-même et utilisés pour les opérandes de type intégrés, et présente brièvement plusieurs opérateurs définis par la bibliothèque standard.

Articles associés :

Chapitre 1 C++ : Valeurs de retour des fonctions, commandes du compilateur GNU

Chapitre 2 C++ : Variables et types de base

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:
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