Tipos de Dados de C++

    A linguagem de programação C++ possui uma tipagem de dados forte e sua declaração é necessária, ao contrário de linguagens como Python, PHP, Javascript e dentre outras, onde a declaração do tipo é omitida do código fonte, deixando o interpretador cuidar da parte burocrática de negociar a alocação de memória com o sistema operacional(SO), omitindo esta responsabilidade do desenvolvedor.

    A declaração do tipo de dados em C++ é necessária para informar ao computador como alocar e manipular os dados em memória, seja dados do tipo inteiro, flutuante, ou uma sequência de caracteres.

    Talvez esses pequenos detalhes é o que afaste muitos desenvolvedores da linguagem, devemos ainda lembrar que  para uma linguagem de alto nível funcione sem a declaração do tipo de dados, alguém teve que executar o serviço de interpretar as ações citadas acima para o desenvolvedor não ter de lidar com tais questões.

 

            Os Tipos Primitivos do C++

 

 

    A linguagem C++ tem 7 tipos básicos:    

    char: Caracter: O valor armazenado é um caractere. Caracateres geralmente são armazenados em códigos (usualmente o código ASCII);   

    int: Número inteiro: é o tipo padrão e o tamanho do conjunto que pode ser representado, normalmente depende da máquina em que o programa está rodando.

    long: O tipo de dados long (também chamado de long int) é uma variação do tipo int e geralmente possui a mesma capacidade de armazenamento deste. Nós o usamos quando queremos representar números inteiros, ou seja, sem partes fracionárias, assim como int.

    float: Número em ponto flutuante de precisão simples. São conhecidos normalmente como números reais.

    double: double é o ponto flutuante duplo e pode ser visto como um ponto flutuante com muito mais precisão.

    bool: Representa o valor booleano, falso ou verdadeiro;

    wchar_t: Utilizado para armazenar caracteres amplos. Por exemplo, o char armazena caracteres em código ASCII, o wchar_t permite utilizar outras codificações.

    Outra declaração aceita para tipos de dados é unir as palavras reservadas signed e unsigned ao tipo, declarações que aceitam valores com representação negativa (signed) ou tipos que não aceitam valores negativos (unsigned).

 

  • Sizeof: É um operador unário de C++ que é utilizado semelhantemente a uma chamada de função. Exemplo:

  • Typedef: Se você quiser abreviar a declaração de um tipo de dados, você pode usar typedef. Esta função também server para criar uma estrutura de dados. Exemplo:

 

                Os Tipos Compostos de C++

 

    Os tipos de dados compostos derivam dos tipos primitivos e são úteis para resolver uma grande quantidade de problemas. Se quisermos, por exemplo, armazenar uma frase inteira? Ou, por exemplo, os tempos dos atletas que disputaram uma corrida?
    Para resolver esses problemas podemos criar tipos compostos, que atendem a uma função específica no seu programa. Veremos a seguir 4 principais tipos compostos de dados que podemos criar em C++ e que lhe ajudará a solucionar a maioria dos problemas.

  • Vetores: No código abaixo criamos um registro que armazena 10 números de ponto flutuante na memória. Para criar um vetor, declaramos o tipo de dados, o nome do registro e, entre colchetes, a quantidade de registros que queremos armazenar. Para acessar, utilizamos o nome do registro com o índice do registro entre colchetes. É muito importante ter em mente que os índices começam em 0 (zero)! Sendo assim, um registro de, por exemplo, N coisas, tem índices de 0 até N-1.

   

  • MatrizesMatrizes são, conceitualmente, um vetor de vetores. A declaração de uma matriz se dá semelhantemente a de um vetor. Ex:

  • StringsStrings são vetores de caracteres. Ainda que sejam vetores, as strings em C++ possuem algumas particularidades:

  • Structs: Structs, do inglês structure, são utilizadas para criar estruturas de dados: tipos compostos de dados que, em conjunto, formam uma única estrutura.

    *Obs.: A declaração da struct não precisa estar, necessariamente, no início do código (antes da main). Poderá estar dentro de um bloco de chaves ({ }), mas nesse caso seria como uma struct local: só poderia ser acessada dentro deste bloco.

 

Fontes:

pt.wikibooks.org/wiki/Programar_em_C%2B%2B/Vari%C3%A1veis_e_constantes

www.nacaolivre.com.br/cpp/tipos-de-dados-em-c/

pt.wikiversity.org/wiki/Curso_de_C%2B%2B/Tipos_de_dados#Tipos_de_dados_compostos