[RIPRODUZIONE DI BRANI MUSICALI] SPEAKER: Va bene. Quindi parliamo di un altro cosa che è sorta di unico a C, che è i tipi di dati e variabili. Quando dico unica di C, davvero significare solo nel contesto di, se sei stato un programmatore per un tempo molto lungo, non hai probabilmente ha lavorato con i tipi di dati se hai utilizzato moderno linguaggi di programmazione. Linguaggi moderni come PHP e JavaScript, che vedremo anche un po ' più avanti nel corso, non dovete realmente specificare il tipo di dati di una variabile quando lo si utilizza. Basta dichiarare e iniziare ad usarlo. Se si tratta di un intero, so che è un numero intero. Se si tratta di un personaggio, è sa che è un personaggio. Se si tratta di una parola, sa si tratta di una stringa, il cosiddetto. Ma in C, che è un lingua più anziani, abbiamo bisogno per specificare i dati tipo di ogni variabile che creiamo la prima volta che usiamo quella variabile. Quindi, C è dotato di un po ' built-in tipi di dati. E veniamo a conoscenza con alcuni di quelli. E poi dopo faremo anche parliamo po 'su alcuni dei tipi di dati che abbiamo scritto per te, così si possono usare in CS50. Il primo è int. Il tipo di dati int è usato per le variabili che memorizzerà valori interi. Quindi 1, 2, 3, negativo 1, 2, 3, e così via. Interi, che è qualcosa che dovrebbe tenere a mente per il quiz, prendere sempre quattro byte della memoria, che è di 32 bit. Ci sono otto bit in un byte. Quindi questo significa che la gamma di Valori che un intero grado di memorizzare è limitato da quello che può andare bene all'interno 32 bit vale la pena di informazioni. Ora, a quanto pare, è stato molto tempo fa ha deciso che ci saremmo divisi tale intervallo di 32 bit in numeri interi negativi e interi positivi, ogni metà ottenendo dell'intervallo. Così l'intervallo di valori che rappresentiamo con un intervallo intero da negativo 2 alla potenza 31 a 2 a il potere 31 meno 1, causare è necessario anche un posto per 0. Quindi, in pratica la metà dei valori possibili si può montare in un int sono negativi, e la metà sono positivi. E più o meno qui, si tratta di negativo 2 miliardi a circa 2 miliardi di positivo. Dare o prendere un paio di centinaia di euro. Ecco, questo è quello che si può andare bene in una variabile intera. Ora abbiamo anche qualcosa chiamato un intero senza segno. Ora unsigned int non sono tipo di variabile separata. Piuttosto, non firmato è quello che chiama un qualificatore. Esso modifica i dati tipo di integer leggermente. E in questo caso, ciò non firmato means-- e si può anche utilizzare senza segno altri tipi di dati, intero non è l'unico. Ciò che fa è effettivamente raddoppia il campo positivo di valori che un intero può assumere a la spesa di non permettere di prendere su valori negativi. Quindi, se avete i numeri che conoscete otterrà maggiore di 2 miliardi, ma meno di 4 miliardi di euro, per example-- che è 2 al 32 ° power-- si potrebbe desiderare di utilizzare un unsigned int se il vostro valore non sarà mai negativa. Avrete a volte avere usato per le variabili unsigned in CS50, che è il motivo per cui ho parlato qui. Ma ancora una volta, l'intervallo di valori che può rappresentare un intero senza segno da t intero normale, sono 0 per 2 alla potenza 32a meno 1, o 0 circa a 4 miliardi. Così avete effettivamente raddoppiato il campo positivo che si può andare bene, ma hai dato tutto i valori negativi. Ora, come un a parte, senza segno non è l'unica qualificazione che potremmo vedere di i tipi di dati variabili. Ci sono anche cose chiamate a breve e lungo e const. Const vedremo un po ' Poco più avanti nel corso. A breve e lungo, probabilmente non lo farà. Ma basta sapere che c'è sono altre qualificazioni. Unsigned non è l'unico. Ma è l'unico che siamo andando a parlare in questo momento. Quindi tutto bene. Così abbiamo coperto interi. Cosa c'è dopo? Caratteri. Così caratteri vengono utilizzati per le variabili che memorizzerà i singoli caratteri. Char è l'abbreviazione di carattere. E a volte si potrebbe sentire persone pronunciano come auto. Così i personaggi prendono sempre uno byte di memoria, che si trova a soli 8 bit. Quindi questo significa che possono andare bene solo valori nella gamma di negativo 2 alla settima potenza, o negativa 128, a 2 al 7 di alimentazione meno 1, o 127. Grazie a ASCII, era fa molto deciso un modo per mappare i numeri positivi da 0-127 a vari personaggi che tutti esistono sulla nostra tastiera. Quindi, come vedremo più avanti in il corso, e probabilmente vi venire a memorizzare a un certo punto, maiuscola, per example-- la capitale carattere A-- mappe al numero 65. E la ragione di ciò è perché questo è ciò che è che è assegnato dallo standard ASCII. Minuscole A è 97. Il carattere 0 per quando si in realtà digitare il carattere, non che rappresenta il numero zero, è 48. Imparerete una coppia di questi, come si va. E vi sarà certamente arriva ad avere bisogno loro un po 'più avanti in CS50. Il prossimo grande tipo di dati è numeri floating point. Così numeri in virgola mobile sono noto anche come numeri reali. Sono fondamentalmente numeri che avere un punto decimale in loro. Valori in virgola mobile come interi sono anche contenuta entro 4 byte di memoria. Ora non c'è grafico qui. Non c'è nessuna linea numero, perché descrivendo la gamma di un galleggiante non è esattamente chiaro e intuitivo. Basti dire voi avere 32 bit con cui lavorare. E se si dispone di un numero come pi greco, che ha una parte intera 3, e un galleggiante punto parte, o parte decimale 0,14159, e così via, è necessario essere in grado di rappresentare tutti it-- la parte intera e la parte decimale. Allora, cosa pensi che potrebbe significare? Una cosa è che se il decimale parte si allunga e più a lungo, se ho un grande parte intera, non potrebbe essere in grado di essere preciso con la parte decimale. E questo è davvero il limitazione di un galleggiante. Galleggianti hanno un problema di precisione. Abbiamo solo 32 bit a lavorare, quindi abbiamo solo possibile essere così preciso con la nostra parte decimale. Non possiamo avere un decimale necessariamente parte precisa di 100 o 200 caratteri, perché abbiamo solo 32 bit per lavorare con. Ecco, questo è una limitazione di un galleggiante. Ora per fortuna c'è un altro tipo di dati denominato doppia, che un po ' affronta questo problema. Raddoppia, come galleggianti, sono utilizzati anche per memorizzare i numeri reali o in virgola mobile valori. La differenza è che doppi sono doppia precisione. Possono andare bene 64 bit dati o otto byte. Che cosa significa? Bene, significa che possiamo essere molto più preciso con il punto decimale. Invece di avere pi a sette posti forse, con un galleggiante, possiamo forse avere a 30 posti. Se questo è importante, si potrebbe desiderare utilizzare una doppia invece di un galleggiante. In sostanza, se siete lavorando su qualcosa in cui avere un decimale molto lungo e molta precisione è importante, probabilmente si desidera utilizzare un doppio overfloat. Ora, per la maggior parte del vostro lavoro in CS50, un galleggiante dovrebbe essere sufficiente. Ma sanno che esistono raddoppia come un modo per affrontare alquanto con la precisione problema dando un extra di 32 bit per lavorare con per i numeri. Ora questo non è un tipo di dati. Questo è un tipo. E si chiama vuoto. E sto parlando di esso qui perché abbiamo probabilmente visto un paio di volte già in CS50. E si potrebbe chiedere che cosa è interamente circa. Quindi vuoto è un tipo. Essa esiste. Ma non è un tipo di dati. Non possiamo creare una variabile di tipo annullare e assegnare un valore ad essa. Ma funzioni, per esempio, può avere un tipo restituito nulla. In sostanza, se si vede una funzione che ha un tipo di ritorno vuoto, vuol dire che non restituisce un valore. Riuscite a pensare a un comune funzione che abbiamo usato finora in CS50 che non restituisce un valore? Printf è uno. Printf non lo fa in realtà restituire niente. Esso stampa qualcosa al schermo, ed è fondamentalmente un effetto collaterale di quello che printf fa. Ma non ti dà un valore indietro. Non acquisire il risultato e negozio in qualche variabile utilizzare in seguito. E 'solo qualcosa da stampare lo schermo e il gioco è fatto. Quindi diciamo che printf è una funzione void. Esso restituisce nulla. L'elenco perimetro di un funzione può anche essere vuoto. E hai visto anche che un po 'in CS50 troppo. Int void main. Ritiene che suonare un campanello? In pratica ciò significa che principale non prende alcun parametro. Non c'è alcun argomento che avere superato in principale. Ora più avanti vedremo che non c'è un modo per passare argomenti in principale, ma finora quello che abbiamo visto è int void main. Principale semplicemente non prende alcun argomento. E così si precisa che col dire nulla. Stiamo solo essere molto esplicito sul fatto che non richiede alcun argomento. Quindi per ora, è sufficiente dire che nulla in fondo deve solo servire come segnaposto per voi come pensare a come nulla. Non è davvero fare nulla. Non c'è valore di ritorno qui. Non c'è nessun parametro qui. E 'vuoto. E 'un po' più complesso di così. Ma questo dovrebbe essere sufficiente per la parte migliore del corso. E si spera ora avete un po ' poco più di un concetto di ciò che è nulla. Così quelli sono i cinque tipi Avrete incontro che sono built-in a C. Ma in CS50 abbiamo anche una biblioteca. CS50.h, che è possibile includere. E che vi fornirà con due ulteriori tipi che probabilmente sarete in grado da utilizzare sui vostri compiti, o semplicemente di lavoro in generale la programmazione. Il primo di questi è bool. Così il tipo di dati booleano, bool, viene utilizzato per le variabili che si memorizzare un valore booleano. Se hai mai sentito parlare questo termine prima, potrebbe sapere che un valore booleano valore è capace di soli tiene due diversi valori distinti. Vero e falso. Ora, questo sembra abbastanza fondamentale, giusto? E 'una specie di una sorpresa che questo non esiste in C come è built-in. E in molte lingue moderne, naturalmente, booleani sono un tipo di dati standard di default. Ma in C, non sono in realtà. Ma abbiamo creato per voi. Quindi, se mai bisogno di creare una variabile il cui tipo è bool, tanto per essere sicuro di #include CS50.h all'inizio del vostro programma, e sarete in grado di creare variabili di tipo bool. Se si dimentica di #include CS50.h, e di iniziare a utilizzare le variabili di tipo booleano, si possono incontrare alcuni problemi quando si sta compilando il vostro programma. Quindi, solo essere alla ricerca per questo. E forse si può solo fissare la problemi di libbra compreso CS50.h. L'altro grande tipo di dati che abbiamo fornire per voi nella biblioteca CS50 è stringa. Così che cosa è una stringa? Le stringhe sono davvero solo parole. Sono collezioni di caratteri. Sono parole. Sono frasi. Sono paragrafi. Potrebbe essere interi libri, anche. Molto breve a molto lungo serie di caratteri. Se avete bisogno di usare le stringhe, per esempio, per memorizzare una parola, tanto per essere sicuro di includere CS50.h all'inizio del vostro programma in modo da poter utilizzare il tipo di stringa. E allora si può creare variabili il cui tipo di dati è una stringa. Ora più avanti nel corso, ci sarà anche vedere che questo è Non tutta la storia, neanche. Ci incontreremo cose chiamati strutture, che vi permetterà di raggruppare ciò che può essere un intero e una stringa in una sola unità. E possiamo usare quella per uno scopo, che potrebbe tornare utile più avanti nel corso. E ci sarà anche imparare su tipi definiti, che ti permettono di creare i propri tipi di dati. Non abbiamo bisogno di preoccuparsi a tale proposito per ora. Ma sappiamo che questo è qualcosa all'orizzonte, che ci sia molto di più di tutto questo cosa tipo di quello che ti sto dicendo solo adesso. Quindi, ora che abbiamo imparato po 'su i dati di base tipi e tipi di dati CS50, diamo parlare di come lavorare con le variabili e crearli utilizzando questi tipi di dati nei nostri programmi. Se si desidera creare una variabile, tutto quello che dovete fare è due cose. In primo luogo, è necessario dare un tipo. La seconda cosa che dovete a fare è dargli un nome. Una volta fatto questo e schiaffeggiato un punto e virgola alla fine di quella linea, hai creato una variabile. Quindi, ecco due esempi. Int numero; lettera char ;. Che cosa ho fatto qui? Ho creato due variabili. La prima, la variabile di nome è il numero. E il numero è in grado di contenere interi digitare i valori, perché il suo tipo è int. Lettera è un'altra variabile che può contenere caratteri perché il suo tipo di dati è char. Abbastanza semplice, giusto? Se vi trovate in una situazione in cui è necessario creare più variabili dello stesso tipo, avete solo bisogno di specificare il nome del tipo una volta. Poi basta elencare quante variabili di quel tipo di cui hai bisogno. Così ho potuto, per esempio, qui in questa terza riga di codice, dire altezza int ;, nuova linea. Larghezza Int ;. E che avrebbe funzionato anche. Mi piacerebbe ancora ottenere due variabili chiamato altezza e larghezza, ciascuna delle quali è un numero intero. Ma mi è permesso, le cose per la sintassi C, consolidare in una singola linea. Altezza Int, larghezza; È la stessa cosa. Ho creato due variabili, una chiamata altezza uno chiamato larghezza, entrambi sono in grado di partecipazione valori di tipo integer. Allo stesso modo qui, posso creare tre valori a virgola mobile in una volta. Posso forse creare una variabile chiamato radice quadrata di 2-- che presumibilmente finirà tenere la Point-- galleggiante che la rappresentazione della piazza radice di 2-- radice quadrata di 3, e pi greco. Avrei potuto fare questo su tre linee separate. Galleggiante, radice quadrata 2; Float radice quadrata 3; float pi; e che avrebbe funzionato anche. Ma ancora una volta, posso solo consolidare questo in una sola riga di codice. Rende le cose un po ' più corto, non come goffo. Ora, in generale, è il buon design a solo dichiarare una variabile quando ne avete bisogno. E parleremo un po ' po 'di più su questo più avanti nel corso quando discuteremo ambito. Quindi non necessariamente bisogno di creare tutte le variabili all'inizio del programma, che alcune persone potrebbero aver fatto il passato, o era certamente molto comune pratica di codifica molti anni fa quando si lavora con C. Si potrebbe solo vuole creare un diritto variabile quando ne hai bisogno. Tutto ok. Per questo abbiamo creato variabili. Come li usiamo? Dopo dichiariamo un variabili, non abbiamo bisogno di per specificare il tipo di dati di quella variabile più. Infatti, se lo fate, si potrebbe finire con alcune conseguenze strane che saremo tipo di sorvolare per ora. Ma è sufficiente dire, cose strane stanno andando per iniziare accadendo se inavvertitamente ri-dichiarare le variabili con lo stesso nome ancora ed ancora. Così qui ho quattro righe di codice. E ho un paio di commenti ci indicano solo quello che sta succedendo su ogni riga solo per aiutare si ottiene situato in quello che sta succedendo. Numero così int ;. Hai visto che in precedenza. Questa è una dichiarazione di variabile. Ora ho creato una variabile numero chiamato che è capace di contenere i valori del tipo Integer. Ho dichiarato che. La riga successiva che sto assegnando un valore di numero. Numero è uguale 17. Cosa sta succedendo lì? Sto mettendo il numero 17 all'interno di tale variabile. Quindi, se mai poi stampare cosa il contenuto del numero sono seguito, faranno mi dicono che è 17. Così ho dichiarato una variabile, e poi ho assegnato. Siamo in grado di ripetere il processo ancora una volta con la lettera char ;. Questa è una dichiarazione. Lettera uguale capitale H. Questo è un incarico. Piuttosto semplice, anche. Ora, questo processo potrebbe sembra tipo di sciocco. Perché stiamo facendo questo in due righe di codice? C'è un modo migliore per farlo? In realtà, non c'è. A volte si potrebbe vedere questa chiamata inizializzazione. E 'quando si dichiara una variabile e assegnare un valore allo stesso tempo. Questo è in realtà una bella cosa comune da fare. Quando si crea una variabile, di solito desidera avere un certo valore di base. Anche se è 0 o qualcosa del genere. Devi solo si dà un valore. È possibile inizializzare una variabile. Int numero uguale 17 è uguale le prime due righe di codice in alto. Char lettera uguale h è lo stesso come il terza e quarta riga di codice di cui sopra. L'asporto più importante qui quando siamo dichiarazione e l'assegnazione variabili è dopo che abbiamo dichiarato, avviso Non sto usando di nuovo il tipo di dati. Non sto dicendo che int numero uguale a 17 su la seconda riga di codice, per esempio. Sto solo dicendo numero è uguale 17. Anche in questo caso, ri-dichiarazione di una variabile dopo hai già dichiarato può portare a qualche conseguenza strano. Quindi, solo stare attenti a questo. Sono Doug Lloyd. E questo è CS50.