Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia Elétrica Programação de Computadores I - Aula 3 (atualizada em 06ago2013) glaucius@pelotas.ifsul.edu.br Tipos de variáveis TABELA DE TIPOS Linguagem C Tipo Num de bits Formato para leitura com scanf Intervalo Inicio Fim char 8 %c 128 127 unsigned char 8 %c 0 255 int 16 %d ou %i 32768 32767 unsigned int 16 %u 0 65535 long int 32 %li 2147483648 2147483647 unsigned long int 32 %lu 0 4294967295 float 32 %f 3.4E+38 3.4E+38 double 64 %lf 1.7E+308 1.7E+308 long double 80 %Lf 3.4E+4932 3.4E+4932 A linguagem C tem um sistema de tipos semelhante ao de alguns descendentes da linguagem Algol, tais como Pascal. Possui tipos para números inteiros de vários tamanhos com e sem sinal, números de ponto flutuante, caracteres e estruturas (structs). C usa extensivamente ponteiros, um tipo muito simples de referência que guarda o endereço de memória da variável. O ponteiro pode ser referenciado, uma operação que busca o objecto que se encontra na morada da memória que o ponteiro possui, morada essa que pode ser manipulada através de aritmética de ponteiros. Durante o tempo de execução, o ponteiro é simplesmente uma morada de máquina tais como aquelas manipuladas em assembly, mas em tempo de compilação possui um tipo complexo que indica o tipo do objecto para onde ele aponta, permitindo que se verifique o tipo de expressões, incluindo ponteiros. Os ponteiros são usados extensivamente em C. O tipo linha de texto de C é simplesmente um ponteiro para uma matriz de caracteres e alocação dinâmica de memória, descrita abaixo, é efetuada através de ponteiros. Os ponteiros em C possuem um valor reservado especial, NULL, que indica que não estão a apontar para uma morada. INSTITUTO FEDERAL SUL-RIO-GRANDENSE Engenharia Elétrica Programação de Computadores I - Aula 3 – Prof. Glaucius Décio Duarte Página 1 O uso desse valor como morada é muito útil na construção de várias estruturas de dados, mas causa comportamento nãodefinido (possivelmente uma falha de sistema) ao ser referenciado. Um ponteiro que possui o valor NULL é chamado ponteiro nulo. A linguagem C também fornece um tipo especial de ponteiros, o ponteiro vazio , que se traduz num ponteiro que aponta para um objecto de tipo desconhecido. A linguagem C também tem apoio a nível de linguagem para disposições estáticas (de dimensão fixa) de tipos. As disposições de tipos podem parecer ter mais que uma dimensão apesar de serem tecnicamente disposições de disposições de tipos. O acesso a disposições de tipos é feito através de ponteiros e aritmética de ponteiros; o nome da disposição é tratado como se fosse um ponteiro que aponta para o início da disposição. Em certas aplicações não é razoável usaremse disposições de tipos de dimensão fixa e por isso a alocação dinâmica de memória pode ser usada para criar disposições de tipos de dimensão variável. . Como a linguagem C é regularmente usada em programação de baixonível de sistemas, há casos em que é necessário tratar um número inteiro como sendo uma memória, um número de ponto flutuante como sendo um número inteiro ou um tipo de ponteiro como sendo outro. Para estes casos, a linguagem C fornece a capacidade de "moldagem" (também denominado "conversão de tipo" ou casting), uma operação que, caso seja possível, força a conversão de um objecto de um tipo para outro. Apesar de ser por vezes necessário, o uso de conversões de tipo sacrifica alguma segurança oferecida pelo sistema de tipos. int O tipo de dados int (inteiro) serve para armazenar valores numéricos inteiros. Existem vários tipo de inteiros, cada um de um tamanho diferente: * int, pode possuir 16, ou 32 bits, dependendo se o processador é de 16 ou 32 bits. * short int, possui tamanho de 16 bits * long int, possui tamanho de 32 bits Um int pode ser por defeito um long int ou um short int dependendo da plataforma onde está a correr. Todos estes tipos de inteiros podem ainda ser declarados precedidos da cláusula unsigned, o que faz com que só suporte números positivos. Isto faz com que, com o mesmo tamanho, uma variável suporte mais números positivos do que um signed (todos os inteiros são signed por defeito). char O tipo char ocupa 1 byte, e serve para armazenar caracteres. Isso significa que o programa reserva um espaço de 8 bits na memória RAM do computador para armazenar um valor. Com o tipo char é também possível armazenar strings, que são cadeias de caracteres. INSTITUTO FEDERAL SUL-RIO-GRANDENSE Engenharia Elétrica Programação de Computadores I - Aula 3 – Prof. Glaucius Décio Duarte Página 2 float O tipo de dados float serve para armazenar números de ponto flutuante, ou seja, com casas decimais. double O tipo de dados double serve para armazenar números de ponto flutuante de dupla precisão, tem o dobro do tamanho do float e portanto o dobro da capacidade. Fonte: Wikipedia INSTITUTO FEDERAL SUL-RIO-GRANDENSE Engenharia Elétrica Programação de Computadores I - Aula 3 – Prof. Glaucius Décio Duarte Página 3
Compartilhar