Índice:
Vídeo: Programar em C - Conceito e Criação de Variáveis em C - Aula 4 2024
Na programação C, você pode mexer com a variável em seu código, alterando-o para outro tipo, dando-lhe um novo nome, ou lançando um feitiço sobre o variável para atender às suas necessidades, benevolente ou não.
Typecasting em descrença
Quando uma variável flutuante não é um flutuador? Quando é uma tentativa em um int, é claro. Este truque é possível em C usando o typecast. Por exemplo:
(int) dívida
Na linha anterior, a variável flutuante dívida é um valor de tentativa para um valor int. O int entre parênteses direciona o compilador para tratar o valor de dívida como um número inteiro.
Por que alguém quer fazer isso?
Porque às vezes uma função requer um tipo de variável específico e esse tipo não está disponível. Em vez de converter e manipular vários tipos de variáveis em um programa, você pode simplesmente digitar uma variável no tipo que deseja. Não é um truque comum, mas muitas vezes é necessário, como mostrado em That's Not Right.
ISSO NÃO É DIREITO
#include int main () {int a, b; flutuar c; printf ("Insira o primeiro valor:"); scanf ("% d", & a); printf ("Input the second value:"); scanf ("% d", & b); c = a / b; printf ("% d /% d =%. 2fn", a, b, c); retornar (0);}
Exercício 1: Digite o código-fonte de That's Not Right no seu editor. Construa e execute.
Aqui está um exemplo executado com a entrada em negrito:
Digite o primeiro valor: 3 Digite o segundo valor: 2 3/2 = 1. 00
Obviamente, é errado que 3 ÷ 2 funcione de alguma forma para 1. 50. Se o computador diz que é 1. 00, o computador deve estar correto.
Ou talvez o computador esteja simplesmente confuso porque na linha 12 do código fonte, dois valores int são divididos e o resultado é atribuído a um flutuador. Isso não funciona muito, no entanto, porque dividir um inteiro por um inteiro em C produz um número inteiro como resultado.
O valor 1 é o valor inteiro mais próximo para 1. 50. Portanto, mesmo que o computador esteja errado, está fazendo exatamente o que foi solicitado a fazer.
Exercício 2: Modifique seu código-fonte, alterando a Linha 12 para ler
c = (flutuante) a / (flutuante) b;
Salve a alteração. Crie e execute usando os mesmos valores que acabou de ser mostrado. Aqui está a nova saída:
Digite o primeiro valor: 3 Digite o segundo valor: 2 3/2 = 1. 50
Melhor. Isso porque você usa variáveis a e b na equação, temporariamente permitindo que o compilador as trate como números de ponto flutuante. Portanto, o resultado é o que deveria ser.
Como criar novas coisas com typedef
Você pode entrar em vários problemas com a palavra-chave typedef.Ele pode lançar palavras C e operadores normais de seus seres consistentes em todos os tipos de prejuízos.
OS PERÍLIOS DE TYPEDEF
#incluem typedef int stinky; stinky main () {stinky a = 2; printf ("Todo mundo sabe disso"); printf ("% d +% d =% dn", a, a, a + a); return (0);}
Em The Perils of typedef , a declaração typedef na Linha 3 define a palavra stinky para ser a mesma que a palavra-chave int. Em qualquer lugar, você pode usar int no código, você pode usar a palavra stinky em vez disso, como mostrado nas Linhas 5 e 7.
Exercício 3: Use o código-fonte de The Perils of typedef < para criar um novo programa, demonstrando que um tipo de variável fedorento é o mesmo que um int. Construa e execute. Concedido, o exemplo em The Perils of
typedef é bastante bobo; nenhum programador sério configuraria um programa real assim. Onde typedef é usado na maioria das vezes é na definição de estruturas. A declaração typedef ajuda a diminuir o impacto dessa atividade. Criando uma Estrutura, o Caminho Tradicional mostra como funciona a operação de estrutura aninhada, dado um conhecimento de estruturas:
CRIANDO UMA ESTRUTURA A MANEIRA TRADICIONAL
struct id {char first [20]; char last [20];}; struct date {int month; dia int; ano int;}; struct human {struct id name; struct data birthday;};
Usando
t ypedef para Definir uma Estrutura mostra como as declarações ocorrem se você fosse tipear as estruturas: USANDO
TYPEDEF PARA DEFINIR UMA ESTRUTURA > typedef struct id {char first [20]; char last [20];} pessoal; typedef struct date {int month; dia int; ano int;} calendário; struct human {nome pessoal; aniversário de calendário;}; Neste anúncio, o id da estrutura é exibido no nome pessoal. Esse não é um nome de variável; é um typedef. É o mesmo que dizer: "Todas as referências a struct id são agora as mesmas do nome pessoal. "
Da mesma forma, a data da estrutura está selecionada no calendário. Finalmente, na declaração da estrutura humana, os nomes de tipedef são usados em vez das definições de estrutura mais complexas.
A NESTED STRUCTURE
#include #include int main () {struct date {int month; dia int; ano int;}; struct human {char name [45]; struct data birthday;}; struct presidente humano; estridente (nome do presidente, "George Washington"); Presidente. aniversário. mês = 2; Presidente. aniversário. dia = 22; Presidente. aniversário. ano = 1732; printf ("% s nasceu em% d /% d /% dn", presidente. nome, presidente. aniversário. mês, presidente. aniversário. dia, presidente. ano de aniversário.); retornar (0);}
Exercício 4
:
Substitua o membro nome na estrutura humana em A Estrutura aninhada com uma estrutura aninhada. Nomeie esse id de estrutura e tenha dois membros, char arrays, primeiro e último, para armazenar o primeiro e último nome de um indivíduo. Se você fizer tudo corretamente, a referência ao nome do presidente será as variáveis presidente. nome. primeiro
e presidente. nome. último . Certifique-se de atribuir valores a essas variáveis no seu código e exibir os resultados. Exercício 5 :
Modifique o código-fonte do projeto que você criou no Exercício 4 para usar typedef, como mostrado em Usando t ypedef para Definir uma Estrutura. Construa e execute. Pode-se argumentar que usar typedef não torna seu código mais claro do que você simplesmente usou bons nomes de variáveis e texto com formatação bem-formada. Por exemplo, você não pode usar typedef simplesmente porque você não quer lembrar o que você definiu. Mas você encontrará outro código que usa typedef. Não deixe que isso te assombra. A verdadeira vantagem de usar typedef com uma estrutura é, possivelmente, que você economiza de digitar a palavra struct muitas vezes.