Sommario:
Video: Strutture di controllo: Istruzioni di selezione ~ Lezione 4 parte 1 C/C++ 2024
Nella programmazione C, puoi modificare la variabile nel tuo codice cambiandola in un altro tipo, assegnandogli un nuovo nome o eseguendo un incantesimo sul variabile per soddisfare i tuoi bisogni, benevolo o no.
Typecasting in incredulità
Quando una variabile float non è un float? Quando è typecast in un int, ovviamente. Questo trucco è reso possibile in C usando il typecast. Ad esempio:
(int) debito
Nella riga precedente, la variabile float debito è convertita in typecast in un valore int. L'int tra parentesi indirizza il compilatore a trattare il valore di debito come numero intero.
Perché qualcuno dovrebbe volerlo fare?
Perché a volte una funzione richiede un tipo di variabile specifico e quel tipo non è disponibile. Piuttosto che convertire e manipolare diversi tipi di variabili in un programma, puoi semplicemente digitare una variabile nel tipo che desideri. Non è un trucco comune, ma è spesso necessario, come mostrato in That's Not Right.
NON È GIUSTO
#include int main () {int a, b; float c; printf ("Inserisci il primo valore:"); scanf ("% d", & a); printf ("Inserisci il secondo valore:"); scanf ("% d", & b); c = a / b; printf ("% d /% d =%. 2fn", a, b, c); return (0);}
Exercise 1: Digita il codice sorgente da That's Not Right nel tuo editor. Costruisci ed esegui.
Ecco un esempio di esecuzione con l'input in grassetto:
Immettere il primo valore: 3 Immettere il secondo valore: 2 3/2 = 1. 00
Ovviamente, è sbagliato che 3 ÷ 2 in qualche modo funzionerebbe a 1. 50. Se il computer dice che è 1. 00, il computer deve essere corretto.
O forse il computer è semplicemente confuso perché nella riga 12 del codice sorgente, due valori int sono divisi e il risultato è assegnato a un float. Ciò non funziona, tuttavia, perché la divisione di un intero con un intero in C produce un intero come risultato.
Il valore 1 è il valore intero più vicino a 1. 50. Quindi, anche se il computer è sbagliato, sta facendo esattamente ciò che è stato detto di fare.
Esercizio 2: Modifica il codice sorgente, modificando la riga 12 per leggere
c = (float) a / (float) b;
Salva la modifica. Costruisci ed esegui usando gli stessi valori appena mostrati. Ecco la nuova uscita:
Immettere il primo valore: 3 Immettere il secondo valore: 2 3/2 = 1. 50
Migliore. Questo perché le variabili typecast a e b nell'equazione, consentono temporaneamente al compilatore di trattarle come numeri a virgola mobile. Pertanto, il risultato è quello che dovrebbe essere.
Come creare nuove cose con typedef
È possibile ottenere molti problemi con la parola chiave typedef.Può trasmettere parole e operatori C normali dai loro sé coerenti in tutti i tipi di guai.
I PERINI DI TYPEDEF
# include typedef int stinky; main puzzolente () {puzzolente a = 2; printf ("Tutti lo sanno"); printf ("% d +% d =% dn", a, a, a + a); return (0);}
In The Perils of typedef , l'istruzione typedef alla riga 3 definisce la parola puzzolente come la parola chiave int. Ovunque tu possa usare int nel codice, puoi usare invece la parola puzzolente, come mostrato nelle Linee 5 e 7.
Esercizio 3: Usa il codice sorgente da I Pericoli di typedef < per creare un nuovo programma, dimostrando che un tipo di variabile puzzolente è uguale a un int. Costruisci ed esegui. Certo, l'esempio in The Perils of
typedef è piuttosto sciocco; nessun programmatore serio avrebbe creato un vero programma come quello. Dove typedef è usato più spesso è nella definizione delle strutture. L'affermazione typedef aiuta a ridurre il chunkiness di quell'attività. Creazione di una struttura in modo tradizionale mostra come funziona l'operazione di struttura nidificata, data una conoscenza delle strutture:
CREAZIONE DI UNA STRUTTURA MODO TRADIZIONALE
struct id {char first [20]; char last [20];}; struct date {int mese; int giorno; int anno;}; struct human {struct id name; struct date birthday;};
L'uso di
t ypedef per definire una struttura mostra come avvengono le dichiarazioni se si digita typedef delle strutture: UTILIZZANDO
TYPEDEF PER DEFINIRE UNA STRUTTURA > typedef struct id {char first [20]; char last [20];} personale; data typedef struct {int mese; int giorno; int anno;} calendario; struct human {nome personale; compleanno del calendario;}; In questo Annuncio, l'ID della struttura è tipicamente assegnato al nome personale. Questo non è un nome variabile; è un typedef. È come dire: "Tutti i riferimenti a struct id ora sono gli stessi del nome personale. "
Allo stesso modo, la data della struttura è typedef'd al calendario. Infine, nella dichiarazione della struttura umana, vengono usati i nomi typedef invece delle definizioni di struttura più complesse.
UNA STRUTTURA NASCOSTA
#include #include int main () {struct date {int month; int giorno; int anno;}; struct human {nome char [45]; struct date birthday;}; struct human president; strcpy (presidente nome, "George Washington"); Presidente. compleanno. mese = 2; Presidente. compleanno. giorno = 22; Presidente. compleanno. anno = 1732; printf ("% s è nato su% d /% d /% dn", presidente nome, presidente, compleanno, mese, presidente, compleanno, giorno, presidente, compleanno, anno); return (0);}
Exercise 4
:
Sostituisce il nome membro nella struttura umana in A Nested Structure con una struttura nidificata. Assegna un nome all'ID della struttura e contenga due membri, gli array di caratteri, il primo e l'ultimo, per memorizzare il nome e il cognome di un individuo. Se fai tutto correttamente, il riferimento al nome del presidente sarà le variabili presidente. nome. prima
e presidente. nome. ultima . Assicurati di assegnare valori a queste variabili nel codice e visualizza i risultati. Esercizio 5 :
Modificare il codice sorgente dal progetto creato nell'esercizio 4 per utilizzare typedef, come mostrato in Uso di t ypedef per definire una struttura. Costruisci ed esegui. Si può sostenere che l'uso di typedef non rende il tuo codice più chiaro di quello che hai usato semplicemente nomi di variabili validi e testo ben formattato. Ad esempio, non puoi usare typedef semplicemente perché non vuoi ricordare quello che hai definito. Ma incontrerai altro codice che usa typedef. Non lasciarti spaventare. Il vero vantaggio dell'uso di typedef con una struttura è, probabilmente, il fatto che ti risparmia di scrivere troppe volte la parola struct.