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

C++ Tutorial Básico

C++ Palavra-chave e identificador

C++ Sentença goto

C++ Retorno de referência

C++ String

C++ Enumerado (enum)

C++ Sobrecarga de operador

C++ Gestão de memória

C++ Template

C++ Map (container)

C++ <cmath>

Tipos de modificadores ++em Cna programação,Modificadores de tipo de dadosTipo de dadoso tipo de dados.

C++ Permite alterar o significado de char, int e double Colocar modificadores antes do tipo de dados. Os modificadores são usados para alterar o significado do tipo básico, então eles podem atender a várias situações.

A seguir está listado os modificadores de tipo de dados:

  • signed

  • unsigned

  • long

  • short

Modificador signed, unsigned, long e short pode ser aplicado ao tipo inteiro,signed e unsigned pode ser aplicado ao tipo caractere,long pode ser aplicado ao tipo double.

Modificador signed e unsigned Também pode ser long ou short o prefixo do modificador. Por exemplo:unsigned long int.

C++ Permite usar símbolos abreviados para declararinteiro curto não assinadoouLongo inteiro unsigned. Você pode omitir int, apenas escrever a palavra unsigned, short ou unsigned, longint é implícito. Por exemplo, as duas seguintes sentenças declaram variáveis inteiras unsigned.

unsigned x;
unsigned int y;

Para entender o C++ Explicamos a diferença entre os modificadores de inteiros assinados e não assinados, vamos executar o seguinte programa curto:

#include <iostream>
using namespace std;
 
/* 
 * Este programa demonstra a diferença entre inteiros assinados e não assinados
*/
int main()
{
   short int i;           // inteiro curto assinado
   short unsigned int j;  // inteiro curto não assinado
 
   j = 50000;
 
   i = j;
   cout << i << " " << j;
 
   return 0;
}

Quando o programa acima é executado, ele produz os seguintes resultados:

-15536 50000

No resultado acima, o inteiro curto não assinado 5O padrão de bits de 0,000 é interpretado como um inteiro curto assinado -15,536.

Esta é uma lista de descrições de modificadores de tipo:

Tipo de dadostamanhoSignificado
signed int4 bytes
para inteiros (equivalente a int)
unsigned int4 bytespode armazenar apenas inteiros não negativos
short2 bytespara números inteiros pequenos (range-32768até32767)
longpelo menos4bytespara números inteiros grandes (igual a long int)
unsigned long4 bytespara números inteiros positivos grandes ou 0 (igual a unsigned long int)
long long8 bytespara números inteiros muito grandes (igual a long long int).
unsigned long long8 bytespara números inteiros positivos muito grandes ou 0 (igual a unsigned long long int)
long double8bytespara números de ponto flutuante grandes
signed char1 bytespara caracteres (garante o range-127até127)
unsigned char1 bytespara caracteres (rangeDe 0 a255)

modificador short

Podemos usar o modificador short deNúmeros inteiros pequenos(range -32,767até+32,767).

por exemplo,

// Números inteiros pequenos
short a = 12345;

Aqui, a é uma variável inteira short.

Atenção: short é equivalente a short int.

modificador long

Se precisarmos armazenar umNúmeros inteiros grandes(range)-2147483647até2147483647Se um valor for maior que

// Números inteiros grandes
long b = 123456;

Atenção: long é equivalente a long int.

O modificador long pode ser usado também com variáveis double.

// Números de ponto flutuante grandes
long double c = 0.333333333333333333L;

Atenção:Para representar long double, usamos o sufixo L. Se não usarmos o sufixo L, o double é convertido para o valor long double (o que pode resultar na perda de dados).

long long

long long pode ser repetido duas vezes para criar o tipo long long. Este tipo é usado para números maiores que long. O modificador long long pode ser usado apenas com int.

por exemplo,

// long long int
long long num = 12345678;

modificadores signed e unsigned

Os variáveis assinadas (signed) podem contere positivointeiroe negativointeiro, incluindozero. Por exemplo,

// valor inteiro positivo
signed int x = 23;
// valor inteiro negativo
signed int y = -13;
// inteiro de zero
signed int z = 0;

Aqui,

  • x mantém umpositivointeiro

  • y mantém umnegativointeiro

  • z mantémzerointeiro

Variável sem sinal(unsigned)pode conter apenas inteiros não negativos. Por exemplo,

// inteiro positivo
unsigned int x = 2;
unsigned int y = 0;

Aqui,

  • x mantém um inteiro positivo

  • y mantém zero

Normalmente, a variável int pode armazenar um escopo de -2,147,483,648 até 2,147,483,647 Os valores. Enquanto isso, a variável unsigned int pode armazenar um escopo de 0 até 4,294,967,295 Os valores.

com valores. Combinados,

C ++Existem3Diferentes tipos de char: char, signed char e unsigned char. Na verdade, há basicamente dois tipos: signed char e unsigned char.

Isso é porque, mesmo que char com o padrão C ++Os signed char ou unsigned char dentro de não são os mesmos, e diferentes compiladores também podem ver char como signed char ou unsigned char conforme seu gosto.

Atenção:Quando usamos apenas char em vez de signed char ou unsigned char, esse tipo é chamadochar normal (caracter normal).

Você já deve ter percebido, signed char pode armazenar inteiros positivos e negativos, enquanto unsigned char pode armazenar apenas inteiros positivos (incluso0).

O escopo garantido para valores inteiros que podem ser armazenados por signed char é-127até127e o escopo de unsigned char éDe 0 a255.

// Caracteres normais
char plain_1 = 65;
char plain_2 = 0;
// Caracteres normais com valor negativo
// Pode causar problemas em alguns compiladores
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;

Aqui,

  • plain_1 Possui um inteiro positivo

  • plain_2 Possui valor inteiro zero

  • sin_1 Possui um inteiro positivo

  • sin_2 Possui valor inteiro zero

  • sin_3 Possui um inteiro negativo

  • unsin_1 Possui um inteiro negativo

  • unsin_2 Possui valor inteiro zero

Atenção: é melhor não usar caracteres normais para operações numéricas; deve-se usar signed char ou unsigned char. Os caracteres puros devem ser usados apenas para armazenar valores de caracteres.

C++ do tipo limitador

O limitador de tipo fornece informações adicionais sobre a variável.

LimitadorSignificado
constconst Os objetos do tipo não podem ser modificados durante a execução do programa.
volatileModificador volatile diz ao compilador que não precisa otimizar a variável declarada como volatile, permitindo que o programa leia diretamente a variável da memória. Para variáveis gerais, o compilador realiza otimização, colocando o valor da variável na pilha para acelerar a eficiência de leitura e escrita.
restrictpor restrict O ponteiro modificado é o único método de acesso ao objeto que ele aponta. Apenas C99 Adicionou o novo tipo de limitador restrict.