English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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ées | taille | signification |
---|---|---|
signed int | 4 octet | pour les entiers (équivalent à int) |
unsigned int | 4 octet | ne peut stocker que des entiers non négatifs |
short | 2 octet | pour les petits entiers (portée-32768à32767) |
long | au moins4octet | pour de grands entiers (égal à long int) |
unsigned long | 4 octet | pour de grands entiers positifs ou 0 (égal à unsigned long int) |
long long | 8 octet | pour de très grands entiers (égal à long long int). |
unsigned long long | 8 octet | pour de très grands entiers positifs ou 0 (égal à unsigned long long int) |
long double | 8octet | pour les nombres flottants grand |
signed char | 1 octet | pour les caractères (garantie de portée-127à127) |
unsigned char | 1 octet | pour les caractères (portée dede 0 à255) |
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.
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 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;
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.
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.
Les délimitateurs de type fournissent des informations supplémentaires sur les variables.
délimiteur | signification |
---|---|
const | const Les objets de type const ne peuvent pas être modifiés pendant l'exécution du programme. |
volatile | modificateur 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. |
restrict | par 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. |