Objetivos
        
    
    
        
            Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.
            
         
     
    
        
Tipos de dados
    
    
        
            
                A linguagem C++ possui em seu repertório de tipos de dados primitivos para armazenar números inteiros, racionais, 
                caracteres, cadeia de caracteres, vetores, matrizes, estruturas, enumeradores, uniões, ponteiros 
                e reference. 
            
            
                O uso desses tipos de dados para declaração de variáveis e constantes será visto em 
                C++ Básico: Variáves e Constantes.
            
            
                Os tipos de dados abaixo serão vistos de forma superficial. Suas respectivas seções, tipos derivados, 
                devem ser visitada para mais informações. 
            
            
                Além deles, C++ possui outros tipos complexos em suas bibliotecas nativas que também serão vistos
                em suas respectivas seções em futuras atualizações.
            
         
     
    
    
        
            
                Para manipular dados númericos, a linguagem C++ fornece os tipos primitivos abaixo:
            
            
                
                    
                        | Tipo | 
                        Uso | 
                        Exemplo | 
                        Seção | 
                    
                
                
                    
                        | int | 
                        Númerico decimais(base 10) | 
                        10, -10 | 
                        - | 
                    
                    
                        | float | 
                        Numéros racionais | 
                        1.99, -1.99 | 
                        - | 
                    
                    
                        | double | 
                        Números racionais | 
                        1.99, -1.99 | 
                        - | 
                    
                    
                        | char | 
                        caracteres e inteiros | 
                        0,'A', -128, 255 | 
                        - | 
                    
                
            
            
                Os tipos de dados float e double, também são chamados de ponto-flutuante. A diferença 
                entre ambas está ligado à faixa de dados e precisão de casas decimais.
            
            
                A sinalização ou não são definidas utilizando modificadores  serão vistos mais adiante em 
                C++ Básico: Modificadores.
            
         
     
    
    
        
            
                O tipo int é utilizado para armazenar números inteiros, positivos e negativos. Possuem um tamanho 
                de 4 bytes em memória e armazena dados no intervalo entre -2.147.483.648 
                e 2.147.483.647.
            
            Sintaxe
            int
            Exemplo 1
            0,1,10,-10
            
                O tipo int também aceita que um valor hexadecimal ou octal sejam atribuídos. 
                Utiliza-se 0x para indicar que um número é hexadecimal e "0" para indicar octal:
            
            Exemplo 2
            016, 0xff
         
     
    
    
        
            
                O tipo char é utilizado para armazenar caracteres e números inteiros positivos e negativos. 
                Possuem um tamanho de 1 byte em memória e armazena valores entre -128 e 127.
            
            Sintaxe
            char
            Exemplo 3
            0,1,-1,-10,'a','Z'
            
                O tipo int também aceita que um valor hexadecimal ou octal sejam atribuídos. 
                Utiliza-se 0x para indicar que um número é hexadecimal e "0" para indicar octal:
            
            Exemplo 4
            017, 0xf0
            
                Quando um caracter imprimível é utilizado como valor de atribuição, o mesmo deve estar contido 
                entre ('). Para valores hexadecimais ou octais, utilizar 0 ou 0x com prefixo ao valor.
            
         
     
    
    
        
            
                O tipo double é utilizado para armazenar números(Ponto flutuante) positivos e negativos de 
                com casas decimais. Possuem um tamanho de 8 bytes em memória e armazena dados 
                entre 1.7E-308 até 1.7E+308.
            
            Sintaxe
            double
            Exemplo 5
            
                12.123456
            
         
     
    
    
        
            
                O tipo float é semelhante ao double, armazena números positivos e negativos de 
                com casas decimais. Possuem um tamanho de 4 bytes em memória e armazenam dados 
                entre 1.175494e-38 e 3.402823e+38.
            
            Sintaxe
            float
            Exemplo 6
            
                2.500000
            
            
         
     
    
    
        
            
                Tanto o tipo float quanto o double são utilizados para armazenar números com 
                casas decimais. A principal diferença é o tamanho em bytes desses dois tipos que proporcionam 
                mais ou menos precisão de seus valores. Abaixo uma pequena tabela básica comparativa.
            
            
                
                    
                        | float | 
                        double | 
                    
                
                
                    
                        | tamanho: 4 bytes | 
                        tamanho: 8 bytes | 
                    
                    
                        | 7 dígitos de precisão | 
                        15 dígitos de precisão | 
                    
                    
                        | Suporta 7 dígitos | 
                        Suporta 15 dígitos | 
                    
                
            
         
     
    
    
        
            
                Os tipos de dados derivados, são tipos de dados compostos em outros tipos de dados. A linguagem C++
                fornece os seguintes tipos de dados:
            
            
                
                    
                        | Tipo | 
                        Uso | 
                        Exemplo | 
                        Seção | 
                    
                
                
                    
                        | Vetor(Array) | 
                        variáveis | 
                        1,2,3,... | 
                        Visitar | 
                    
                    
                        | Matriz(Array 2d) | 
                        matrizes | 
                        - | 
                        Visitar | 
                    
                    
                        | String | 
                        Textos | 
                        "um texto" | 
                        Visitar | 
                    
                    
                        | Struct | 
                        Tipos complexos | 
                        - | 
                        Visitar | 
                    
                   
                        | Enum | 
                        Constantes | 
                        0,1,2,3 | 
                        Visitar | 
                    
                    
                        | Union | 
                        União de tipos | 
                        - | 
                        Visitar | 
                    
                
            
         
     
    
    
        
            
                Os tipos de dados string armazenam caracteres de texto, justapostos, em seu conteúdo. As string 
                em C++ são declaradas utilizando a palavra reservada string. 
            
         
     
    
        
            
                Tab. 1.: Abstração de um string
                
                    
                        | 0 | 
                        1 | 
                        2 | 
                        3 | 
                        4 | 
                        5 | 
                        6 | 
                    
                
                
                    
                        | 's' | 
                        't' | 
                        'r' | 
                        'i' | 
                        'n' | 
                        'g' | 
                        '\0' | 
                    
                
            
            Sintaxe
            string nome_variavel;
            Exemplo 8
            
string minhaString = "ABC";
            
                Em C++, uma string é mutável e sempre é terminada com o caracteres '\0' . Uma string sem esse 
                terminador pode gerar erro de acesso a locais de memória. 
            
            
                Mais informações sobre string podem ser vistas em sua seção 
                C++ Básico: Strings.
            
         
     
    
    
        
            
                O tipo struct é um tipo de dado que é composto de um ou mais membros de tipos de dados 
                diferentes. Seu tamanho é variável devido ao fato de possuir membros com diferentes tipos em sua 
                composição.
            
            
                O tipo de dados struct é principalmente utilizado para criar tipos mais complexos de dados.
            
            Sintaxe
            
struct nome
{
  tipo_dado membro1;
  tipo_dado membro2;
  tipo_dado membroN;
}
            
                O corpo de uma struct é delimitado por "{" e "}" e seus membros são separados por (;) e 
                podem ser iniciados ou não. Os tipos do dados já estudados podem ser utilizados.  Ponteiros, vetores
                e matrizes de ponteiro também podem ser utilizados como membros.
            
            
                O acesso aos membros de um struct é feita utilizando o operadore (.) seguido do nome do 
                do membro como pode ver visto na sintaxe abaixo:
            
            Sintaxe
            
variavel_struct.nome_membro
            
                Mais informações sobre o struct podem ser vistas em sua 
                seção C++ Básico: Struct.
            
         
     
    
    
        
            
                O tipo enum é utilizado para criar enumerações em cada membro de seus membros possui um valor 
                inteiro associado. Os membro são separado por (,) e devem estar contidos em { e }. 
            
            Sintaxe
            
enum nome_enum
{
  nome_membro1,
  nome_membro2,
  nome_membroN;
}
            Sintaxe
            
enum nome_enum
{
  nome_membro1 = 10,
  nome_membro2 = 20,
  nome_membroN = N;
}
            
                Mais informações sobre o tipo enum podem ser vistas em sua seção
                C++ Básico: Enum.
            
         
     
    
    
        
            
                O tipo union é um tipo de dado complexo que permite que um mesmo local de memória 
                seja utilizado para armazenar mais de uma variável. Assim como enuns, seus membros devem 
                ser declarados entre "{" e "}" e separados por ";".
            
            Sintaxe
            
union nome_union
{
  tipo_dado membro1;
  tipo_dado membro2;
  tipo_dado membroN;
}
            
                Mais informações sobre o tipo de dado union podem ser vistas em sua seção 
                C++ Básico: Union.
            
         
     
    
    
        
            
                Vetor e matriz são derivados de outros tipos de dados que armazenam dados de forma sequencial
                em memória. Nesta parte do tutorial vamos ver o básico sobre vetor/matriz.
            
         
     
    
    
        
            
                Na linguagem C++ podemos criar vetores a partir dos tipos de dados estudados já estudados. Podemos 
                enxergar um vetor como um local para armazenar variáveis de forma sequencial.
            
            
                Tab. 1: Vetor de int
                
                    
                        | 0 | 
                        1 | 
                        2 | 
                        3 | 
                        4 | 
                        5 | 
                        (...) | 
                    
                
                
                    
                        | 1 | 
                        10 | 
                        -100 | 
                        0 | 
                        2 | 
                        - | 
                        - | 
                    
                
            
            
                Comando de repetição como for, while e do-while são utilizados 
                para percorrer o conteúdo de um vetor. Esses comandos podem ser vistos em 
                C++ Comandos.
            
            
                Mais informações sobre o tipo de dado Vetor podem ser vistas em sua seção 
                C++ Básico: Vetor.
            
         
     
    
    
        
            
                Uma matriz é um vetor de duas dimensões. Sendo assim, seus elementos são armazenados de forma sequencial. 
                Uma matriz com as dimensões 3x3 pode ser representada na forma abaixo:
            
            
                Tab. 2: Abstração de uma matriz de int
                
                    
                        | L/C | 
                        0 | 
                        1 | 
                        2 | 
                    
                
                
                    
                        | 0 | 
                        10 | 
                        20 | 
                        30 | 
                    
                    
                        | 1 | 
                        40 | 
                        50 | 
                        60 | 
                    
                    
                        | 2 | 
                        70 | 
                        80 | 
                        90 | 
                    
                
            
            
                O acesso e atribuição/atualização de um elemento a uma determinada linha e coluna dentro de uma matriz
                é feito utilizando suas linhas e colunas [ e ]. Baseado no exemplos acima temos:
            
            
                Comando de repetição como for, while e do-while são utilizados para percorrer o 
                conteúdo de uma matriz. O tipo de dado Ponteiro pode ser utilizado para auxiliar na iteração 
                desse tipo de dado.
            
            
                Mais informações sobre o Matriz podem ser vistas em sua seção C++ Básico: Matriz.
            
         
     
    
        Tipos derivados/refenciados
        
     
    
        
            
                Os tipos de dados referenciados armazenam endereços de memória. linguagem C++ permite a declaração
                dos seguintes tipos de dados:
            
            
                
                    
                        | Tipo | 
                        Uso | 
                        Exemplo | 
                        Seção | 
                    
                
                
                    
                        | Vetor(Array) | 
                        variáveis | 
                        1,2,3,... | 
                        Visitar | 
                    
                    
                        | Matriz(Array 2d) | 
                        matrizes | 
                        - | 
                        Visitar | 
                    
                    
                        | String | 
                        Textos | 
                        "um texto" | 
                        Visitar | 
                    
                    
                        | Ponteiro | 
                        Endereço de memória | 
                        *ponteiro | 
                        Visitar | 
                    
                    
                        | Reference | 
                        Referencia para variáveis | 
                        &variavel | 
                        Visitar | 
                    
                
            
         
     
    
    
        
            
                O tipo de dado reference armazena o endereço de memória. Sua declaração é feita utilizando o 
                operador &. Com esse tipo de dado podemos manipular dados de forma indireta.
            
            Exemplo 7
            
int a = 10;
int &ref = a;
            
                Mais informações sobre o tipo de dado reference podem ser vistas em sua 
                seção C++ Básico: Reference.
            
         
     
    
    
        
            
                O tipo de dado ponteiro armazena o endereço de memória de uma variável ou memória alocada. Sua 
                declaração é feita utilizando o operador *. Diferente de reference, o tipo ponteiro
                permite o uso de artimética.
            
            Exemplo 8
            
int a = 10;
int *ponteiro = &a;
            
                Mais informações sobre o tipo de dado ponteiro podem ser vistas em 
                sua seção C++ Básico: Ponteiro.
            
         
     
    
        
Tipo Boolean
    
    
        
            
                O tipo boolean trabalha com valores true e false. Esse tipo de dado está 
                disponível nativamente em C++ diferente de C em que é necessário o uso de biblioteca.
            
            Sintaxe
            
bool
            Exemplo 9
            
true, false
         
     
    
    
        
            
                Nesta parte serão vistos os tipos de dados que não se encaixam nos grupos vistos anteriormente 
                como nullptr e void. 
            
         
     
    
    
        
            
                A linguagem C++ possui um tipo de dado nulo representado pela constante nullptr. Esse é 
                utilizado nos tipos de dados de referência como ponteiros, funções e alocação de memória 
                para informar que o recurso não é mais utilizado ou não está iniciado. 
            
            Sintaxe
            nullptr;
            Exemplo 10
            tipo_dado *ponteiro = nullptr;             
         
     
    
    
        
            
                O pseudo-tipo void é utilizada na declaração de ponteiros, retorno de funções, mas não podemos 
                utilizá-lo para declarar variáveis, constantes ou membros de structs, unions e outros.
            
            Sintaxe
            void *ponteiro; 
            Sintaxe
            void funcao(void); //protótipo
            Exemplo 11
            
#include <stdio.h> 
void funcao main(void)  
{
    //corpo omitido
}
         
     
    
        
Histórico de atualizações
    
    
        
            
                - 28/07/2025 - revisão 4 - Ajustes: conteúdo de tópicos, exemplos, sintaxes; Adiçao/Correção em links internos;
 
                - 30/09/2024 - revisão 3 - Várias correções e ajustes
 
                - 30/08/2024 - revisão 2 - Correção em links de objetivos
 
                - 09/02/2024 - revisão 1 - correção em navegação, css e erros gramaticais
 
                - 30/06/2023 - versão inicial
 
            
         
     
    
            
            
                
                    
                    Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
                em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.