English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ mot-clé et identificateur

C++ instruction goto

C++ retourner une référence

C++ chaîne

C++ enregistrement (enum)

C++ surcharge d'opérateur

C++ gestion de la mémoire

C++ modèle

C++ Map(容器)

C++ <cmath>

type de modificateur ++dans Cdans la programmation,Modificateur de type de donnéestype de donnéesle sens.

C++ Permet de modifier char, int et double Placer les modificateurs avant le type de données. Les modificateurs sont utilisés pour modifier le sens de base des types, donc ils peuvent mieux répondre aux besoins de diverses situations.

Voici une liste de modificateurs de type de données :

  • signed

  • unsigned

  • long

  • short

modificateur signed, unsigned, long et short peut être appliqué au type entier,signed et unsigned peut être appliqué au type caractère,long peut être appliqué au type double.

modificateur signed et unsigned peut également être long ou short préfixe du modificateur. Par exemple :unsigned long int.

C++ Permet l'utilisation de l'abréviation pour déclarerentier court non signéouNombre entier long unsigned。Vous pouvez ne pas écrire int, mais écrire simplement le mot unsigned, short ou unsigned, long,int est implicite. Par exemple, les deux instructions suivantes déclarent des variables entières unsigned.

unsigned x;
unsigned int y;

Pour comprendre le C++ Pour expliquer la différence entre les modificateurs de nombre entier signé et non signé, nous allons exécuter le programme suivant :

#include <iostream>
using namespace std;
 
/* 
 * Ce programme démontre la différence entre les entiers signés et les entiers non signés
*/
int main()
{
   short int i;           // entier court signé
   short unsigned int j;  // entier court non signé
 
   j = 50000;
 
   i = j;
   cout << i << " " << j;
 
   return 0;
}

Lorsque le programme ci-dessus est exécuté, il affiche les résultats suivants :

-15536 50000

Dans les résultats ci-dessus, l'entier court non signé 5Le modèle binaire de 0,000 est interprété comme un entier court signé -15,536.

Voici une liste d'explications des modificateurs de type :

type de donnéestaillesignification
signed int4 octet
pour les entiers (équivalent à int)
unsigned int4 octetne peut stocker que des entiers non négatifs
short2 octetpour les petits entiers (portée-32768à32767
longau moins4octetpour de grands entiers (égal à long int)
unsigned long4 octetpour de grands entiers positifs ou 0 (égal à unsigned long int)
long long8 octetpour de très grands entiers (égal à long long int).
unsigned long long8 octetpour de très grands entiers positifs ou 0 (égal à unsigned long long int)
long double8octetpour les nombres flottants grand
signed char1 octetpour les caractères (garantie de portée-127à127
unsigned char1 octetpour les caractères (portée dede 0 à255

modificateur de type short

Nous pouvons utiliser le modificateur de type short.Petit entier(portée −32,767à+32,767)。

par exemple,

// Petit entier
short a = 12345;

Ici, a est une variable entière short.

Attention : short équivaut à short int.

modificateur de type long

Si nous devons stocker unGrand entier(portée de-2147483647à2147483647),则可以使用类型修饰符long。par exemple,

// Grand entier
long b = 123456;

Attention : long équivaut à long int.

Le modificateur de type long peut également être utilisé avec des variables double.

// Grand nombre flottant
long double c = 0.333333333333333333L;

Attention :Pour représenter long double, nous utilisons le suffixe L. Si nous ne l'utilisons pas de suffixe L, double est converti en long double (ce qui peut entraîner une perte de données).

long long

long peut être répété deux fois pour créer le type long long. Ce type est utilisé pour des nombres plus grands que long. Le modificateur de type long long ne peut être utilisé qu'avec int.

par exemple,

// long long int
long long num = 12345678;

Modificateurs signed et unsigned

Les variables signées (signed) peuvent inclureet positifEntieret négatifEntier, y comprisZéro. Par exemple,

// Valeur entière positive
signed int x = 23;
// Valeur entière négative
signed int y = -13;
// Entier de zéro
signed int z = 0;

Ici,

  • x possède unePositifEntier

  • y possède uneNégatifEntier

  • z possèdeZéroEntier

Variable sans signe(unsigned)ne peut contenir que des entiers non négatifs. Par exemple,

// Entier positif
unsigned int x = 2;
unsigned int y = 0;

Ici,

  • x possède une valeur entière positive

  • y possède une valeur nulle

Généralement, la variable int peut stocker une plage de -2,147,483,648 à 2,147,483,647 de valeurs. Quant à la variable unsigned int, elle peut stocker une plage de de 0 à 4,294,967,295 de valeurs.

Les valeurs de signé (signed), non signé (unsigned) et caractères ordinaires (plain char)

C ++Il y a3Différents types de char : char, signed char et unsigned char. En réalité, il n'y a essentiellement deux types : signed char et unsigned char.

C'est parce que même si char avec la norme C ++Les signed char ou unsigned char dans le sont différents, et différents compilateurs peuvent également considérer char comme signed char ou unsigned char selon leurs préférences.

Attention :Lorsque nous utilisons uniquement char au lieu de signed char ou unsigned char, ce type s'appelleplain char (caractère ordinaire).

Vous l'avez peut-être deviné, signed char peut stocker des entiers positifs et négatifs, tandis que unsigned char ne peut stocker que des entiers positifs (y compris0)。

La plage garantie des valeurs entières que peut stocker signed char est-127à127,et la plage de unsigned char estde 0 à255.

// Caractères ordinaires
char plain_1 = 65;
char plain_2 = 0;
// Caractères ordinaires avec des valeurs négatives
// Cela peut entraîner des problèmes avec certains compilateurs
char plain_3 = -56;
// signed char
signed char sin_1 = 12;
signed char sin_2 = 0;
signed char sin_3 = -12;
// unsigned char
unsigned char unsin_1 = -85;
unsigned char unsin_2 = 0;

Ici,

  • plain_1 Posséder une valeur entière positive

  • plain_2 Posséder une valeur entière nulle

  • sin_1 Posséder une valeur entière positive

  • sin_2 Posséder une valeur entière nulle

  • sin_3 Posséder une valeur entière négative

  • unsin_1 Posséder une valeur entière négative

  • unsin_2 Posséder une valeur entière nulle

Attention : Il est préférable de ne pas utiliser des caractères ordinaires pour les opérations numériques ; utilisez plutôt signed char ou unsigned char. Les caractères purs doivent être utilisés uniquement pour stocker des valeurs de caractères.

C++ dans les délimitateurs de type

Les délimitateurs de type fournissent des informations supplémentaires sur les variables.

délimiteursignification
constconst Les objets de type const ne peuvent pas être modifiés pendant l'exécution du programme.
volatilemodificateur volatile informe le compilateur que les variables déclarées volatile ne doivent pas être optimisées, permettant au programme de lire directement la variable à partir de la mémoire. Pour les variables générales, le compilateur optimise les variables, mettant la valeur de la variable en registre pour accélérer l'efficacité de lecture et d'écriture.
restrictpar restrict Le pointeur modifié est le seul moyen d'accéder à l'objet qu'il pointe. Seul C99 Ajout du nouveau type de délimiteur restrict.