[Música tocando] COLUMNA: Todo ben. Entón, imos falar doutro cousa que é medio único para C, que é tipo de datos e variables. Cando digo exclusivo para C, realmente significa só no contexto, se foi un programador por moito tempo, probablemente non teño traballou cos tipos de datos se xa usou moderno linguaxes de programación. Linguaxes modernas como PHP e JavaScript, que tamén veremos un pouco máis tarde no curso, en realidade non ten que especificar o tipo dunha variable de datos cando usalo. Só declaralo lo e comezar a usalo. Se é un número enteiro, sei que é un enteiro. Se é un personaxe, é sabe que é un personaxe. Se é unha palabra, el sabe é unha cadea, así chamada. Pero en C, que é unha linguaxe máis antiga, necesitamos para especificar os datos tipo de cada variable que creamos por primeira vez que usan esa variable. Entón C ven con algúns built-in tipo de datos. E imos comezar familiar con algunhas delas. E entón despois imos tamén falar un pouco sobre algúns dos tipos de datos que escribimos para ti, para que poida usalos en CS50. O primeiro é int. O tipo de datos int é usada para variables que almacenar valores enteiros. Así, 1, 2, 3, negativo 1, 2, 3, e así por diante. Enteiros, o que é algo que debe ter presente ao exame, sempre levar ata catro bytes da memoria, que é de 32 bits. Hai oito bits nun byte. Así, isto significa que o intervalo de Valores que pode almacenar un número enteiro limita polo que pode encaixar dentro 32 bits por valor de información. Agora, como se ve, foi hai moito tempo decidiu que iríamos dividir que gama de 32 bits en enteiros negativos e enteiros positivos, quedando cada metade do intervalo. Así, a gama de valores que representan cun intervalo enteiro de negativo 2 á potencia 31 a 2 a o poder 31 menos 1, facer que tamén precisa dun lugar para 0. Entón, basicamente a metade dos valores posibles pode caber nun int son negativos, e metade son positivos. E máis ou menos aquí, trata-se negativa 2 millóns a preto de 2 millóns positivo. Dar ou tomar algúns centenares de millóns. Entón é iso que pode caber nunha variable enteiro. Agora nós tamén temos algo chamado un enteiro sen signo. Agora ints non asinados non son un tipo separado de variable. Pola contra, sen sinal é o que se chama un cualificado. El modifica os datos tipo de enteiro lixeiramente. E neste caso, o que non asinado means-- e tamén pode usar non asinados outros tipos de datos, integer non é o único. O que efectivamente fai é dobres a gama de valores positivos un enteiro que pode asumir a a costa de non permitindo vostede para asumir valores negativos. Entón se ten números que coñeces se ve maior que 2 millóns, pero menos de 4 millóns, para example-- que é de 2 a 32 power-- pode querer usar un unsigned int se coñecer o seu valor non será negativo. Ás veces vai ter usado para variables non asinados en CS50, que é por iso que eu mencionalo-lo aquí. Pero, de novo, a gama de valores que pode representar cun enteiro sen signo como a t enteiro regulares, son 0 a 2 á potencia de menos de 1 32, ou aproximadamente 0 a 4 millóns. Entón efectivamente dobrou o franxa positiva que pode caber, pero desistiu todo os valores negativos. Agora, como un aparte, sen sinatura Non é o único cualificado para que poidamos ver a tipos de datos variables. Hai tamén cousas chamadas curto e longo e const. Const veremos algo pouco máis tarde no curso. Curto e longo, nós probablemente non ha. Pero só sei que hai son outros cualificados. Sen sinal non é o único. Pero é o único que está vai falar agora. Entón todo ben. Entón, nós Cubrimos enteiros. Cal é o próximo? Chars. Así caracteres son usados ​​para variables que almacenar caracteres simples. Char é curto para o personaxe. E ás veces se pode escoitar persoas pronuncialo lo como coche. Entón personaxes sempre ocupan un byte de memoria, que está a só 8 bits. Entón isto significa que eles só poden caber valores no intervalo de 2 negativo para a sétima potencia, ou negativo 128, a 2 ao 7 de potencia menos 1, ou 127. Grazas a ASCII, foi hai moito tempo decidiu de forma para mapear os números de positivos 0 a 127 a varios personaxes que existen en todo o noso teclado. Entón, como veremos máis adiante, en o curso, e, probablemente, vir a memorizar nalgún punto, o capital A, para example-- a capital carácter A-- mapea ao número 65. E a razón para iso é porque é o que é que é foi asignado pola norma ASCII. Minúsculas A é 97. O carácter 0 para cando realmente escribir o carácter, non representa o número cero, é 48. Vai aprender unha parella deses que vaia. E vai certamente chegar a ter Los un pouco máis tarde na CS50. O seguinte gran tipo de datos É números de punto flotante. Entón, números de punto flotante son tamén coñecido como números reais. Son basicamente números que ter un punto decimal neles. Valores de punto flotante como enteiros son tamén contidos 4 bytes de memoria. Agora non hai ningunha carta aquí. Non hai ningunha liña de número, xa que describe a variedade dun flotador non é exactamente claro ou intuitiva. Tan só dicir que ter 32 bits para traballar. E se ten un número como pi, que ten unha parte enteira 3, e unha flotante parte punto, ou parte decimal 0,14159, etc., ten que ser capaz de representar todos ele-- a parte enteira ea parte decimal. Entón, o que pensas que iso pode significar? Unha cousa é que, se o decimal parte está máis e máis, se eu teño un moi grande parte enteira, non podería poder ser tan precisa coa parte decimal. E iso é realmente o limitación dun float. Flotadores teñen un problema de precisión. Temos só 32 bits para traballar, polo que só podemos ser tan precisos coa nosa parte decimal. Non podemos ter necesariamente un decimal parte falta para 100 ou 200 díxitos, porque só temos 32 bits para traballar. Entón esta é unha limitación dun float. Agora, por sorte, hai outro tipo de datos chamado dobre, que pouco trata sobre este problema. Doubles, como Carrozas, tamén se usan para almacenar números reais ou punto flotante valores. A diferenza é que dobres son precisión dobre. Poden caber 64 bits de datos ou oito bytes. Que significa iso? Ben, iso significa que podemos ser moito máis que co punto decimal. En vez de ter pi a sete lugares quizais, cun flotador, quizais poidamos telo para 30 prazas. Se isto é importante, pode querer a utilización dunha parella en vez dunha boia. Basicamente, se está traballar en calquera cousa onde ter un tempo moi longo casa decimal e moita precisión é importante, probablemente vai querer usar un Overfloat dobre. Agora, para a maior parte do seu traballo en CS50, un flotador debe ser suficiente. Pero sei que hai dobres como un forma de xestionar un pouco a precisión problema, dándolle un extra de 32 bits para traballar con para os seus números. Agora, iso non é un tipo de datos. Este é un tipo. E chámase baleiro. E eu estou falando sobre iso aquí, porque temos probablemente visto que algunhas veces xa en CS50. E pode estar se pregunta o que é todo sobre. Entón baleiro é un tipo. Existe. Pero iso non é un tipo de datos. Non podemos crear unha variable de tipo anular e asignar un valor a ela. Pero as funcións, por exemplo, pode ter un tipo de retorno void. Basicamente, se ve unha función que ten un tipo de retorno void, isto significa que non retorna un valor. Podes pensar en un común función que usei ata agora en CS50 que non retorna un valor? Printf é un deles. Printf en realidade non voltar nada para ti. Ela imprime algo ao pantalla, e é basicamente efectos secundarios que printf. Pero non darlle un valor de volta. Non capturar o resultado e almacenar Lo dalgunha variable para usalo máis tarde. El só imprime algo para a pantalla e está feito. Así, dicimos que printf é unha función nula. Retorna nada. A lista perímetro dun función tamén pode ser nulo. E tamén vin que un pouco en CS50 tamén. Void main Int. Será que isto soa unha campá? Basicamente o que isto significa que O principal non tomar calquera parámetros. Non hai ningún argumento que pasou a principal. Agora, máis tarde, imos ver que hai unha forma de pasar argumentos en principal, pero ata agora o que temos vin é void main int. Principal só non toma ningún argumento. E por iso, especificar que dicindo baleiro. Nós só estamos sendo moi explícita sobre o feito que non leva ningún argumento. Entón, por agora, é suficiente dicir que basicamente baleiro debe só servir como un espazo reservado para vostede como pensar en como nada. Non está facendo nada. Non hai ningún valor de retorno aquí. Non hai parámetros aquí. É nula. É un pouco máis complexo do que iso. Pero iso debe ser suficiente para a mellor parte do curso. E espero que agora ten un pouco pouco máis de un concepto do que é baleiro. Entón eses son os cinco tipos vai encontro que son internos ao C. Pero en CS50 temos tamén unha biblioteca. CS50.h, que pode incluír. E que pode fornecer-lle con dous tipos adicionais que probablemente vai ser capaz para usar nas súas atribucións, ou só traballar xeral de programación. O primeiro destes é booleano. Así, o tipo de datos booleano, bool, utilízase para variables que almacenar un valor booleano. Se nunca escoitou falar este termo antes, pode saber que un booleano valor é capaz de só sostendo dous valores distintos diferentes. Verdadeiro e falso. Agora, iso parece bastante fundamentais, non? É unha especie de unha sorpresa que esta non existe no C como é built-in. E en moitas linguas modernas, por suposto, Booleans son un tipo de datos estándar estándar. Pero en C, realmente non son. Pero creamos isto para vostede. Entón, se precisa crear unha variable cuxo tipo é bool, só a certeza de #include CS50.h no inicio do seu programa, e vai ser capaz de crear variables de tipo bool. Se esqueceu de #include CS50.h, e comezar a usar variables do tipo Boolean, podes atopar algúns problemas cando está compilando o seu programa. Entón, ser só buscando que. E quizais pode corrixir só o problemas por libre incluíndo CS50.h. O outro gran tipo de datos que nós proporcionar para vostede na biblioteca CS50 é cadea. Entón, o que é unha cadea? Cadeas son realmente só palabras. Son coleccións de carácteres. Son palabras. Son frases. Son parágrafos. Pode ser libros enteiros, mesmo. Moi curto para moi longo serie de caracteres. Se precisa utilizar cordas, por exemplo, para almacenar unha palabra, só non se esqueza de incluír CS50.h no inicio do seu programa para que poida usar o tipo cadea. E entón podes crear variables cuxo tipo de datos é cadea. Agora máis tarde no curso, nós tamén imos ver que iso é non toda a historia, calquera. Nós imos atopar cousas estruturas, chamadas que permiten que agrupe o que se pode un enteiro e unha corda nunha unidade. E podemos usar isto para algún propósito, o que pode vir a cadra máis tarde no curso. E nós tamén vai aprender sobre tipos definidos, que permiten que cree seus propios tipos de datos. Non se preocupe sobre iso de momento. Pero só sei que isto é algo sobre o horizonte, que hai moito máis a este conxunto Tipo de cousas que eu estou dicindo a vostede só agora. Polo tanto, agora que aprendemos pouco sobre os datos básicos tipos e tipo de datos CS50, imos falar sobre como traballar con variables e crealas cos seus tipos de datos nos nosos programas. Se quere crear unha variable, todo o que precisa facer é dúas cousas. Primeiro, ten que darlle un tipo. A segunda cousa que precisa que facer é darlle un nome. Unha vez que teña feito isto e bateu un punto e coma ao final da liña, creou unha variable. Entón aquí está dous exemplos. Número Int; Char carta;. O que eu fixen aquí? Eu creei dúas variables. A primeira, a variable de nome é número. E o número é capaz de manter enteiro escriba valores, porque o seu tipo é int. Carta é outra variable que pode conter caracteres porque o seu tipo de datos é char. Moi sinxelo, non? Se se atopa nunha situación onde ten que crear múltiples variables do mesmo tipo, só precisa indicar o nome do tipo unha vez. A continuación, pode consultar tantas variables daquel tipo que precisa. Entón, eu podería, por exemplo, aquí nesta terceira liña de código, dicir altura int;, nova liña. Int ancho;. E que ía traballar moito. Eu son chamado dúas variables alto e ancho, cada unha das cales é un número enteiro. Pero eu estou autorizado a, cousas para C sintaxe, consolidalo-lo nunha única liña. Int altura, anchura; É o mesmo. Eu creei dúas variables, unha chamada altura ancho dun chamado, sendo que ambos son capaces de explotación escriba valores enteiros. Así mesmo aquí, podo crear tres valores de punto flotante de unha vez. Poida que eu poida crear unha variable chamado raíz cadrada de 2-- que presuntamente acabará Manteña o ponto-- flotante que a representación da praza raíz de 2-- raíz cadrada de 3, e pi. Eu podería ter feito isto en tres liñas separadas. Float, raíz cadrada 2; Float raíz cadrada 3; flotar pi; e que ía traballar moito. Pero, de novo, podo só consolidar que nunha soa liña de código. Fai as cousas un pouco máis curto, non como torpe. Agora, en xeral, é bo proxecto só declarar unha variable cando precisa del. E imos falar un pouco pouco máis sobre iso máis tarde no curso cando discutir ámbito. Polo tanto, non precisa necesariamente crear as súas variables no inicio do programa, o que algunhas persoas poden ter feito no pasado, ou foi, certamente, un moi común práctica de codificación moitos anos cando se traballa con C. Vostede puido só quere crear un dereito variable cando precisa del. Todo ben. Entón creamos variables. Como é que podemos usalos? Tras declararse un variable, non precisamos para especificar o tipo de datos desa variable máis. De feito, se fai iso, pode acabar con algunhas consecuencias estrañas que imos tipo de encubrir de momento. Pero basta dicir, cousas estrañas van comezar a ocorrer se inadvertidamente re-declarar variables co mesmo nome máis e máis. Entón aquí eu teño catro liñas de código. E eu teño un par de Comentarios Non só indicando o que está a suceder en cada liña só para axudar se situado o que está pasando. Así número int;. Viu que anteriormente. Esa é unha declaración de variable. Eu creei agora unha variable iso chámase número capaz de manter valores de tipo enteiro. Eu xa declarou el. A seguinte liña Estou atribuíndo un valor de número. Número é igual a 17. O que está a suceder alí? Estou poñendo o número 17 dentro desa variable. Entón, se eu non, a continuación, imprimir o que o contido do número son, máis tarde, eles van me dicir que é 17. Entón, eu teño declarado unha variable, e entón eu teño que lle é asignado. Podemos repetir o proceso novo co carácter carta;. Esa é unha declaración. Carta de capital é igual a H. Isto é unha asignación. Moi sinxelo, tamén. Agora, este proceso pode Parece medio parvo. Por que estamos a facer iso en dúas liñas de código? Existe un xeito mellor de facelo? En realidade, non existe. Ás veces podes ver esta chamada de arranque. É cando declarar unha variable e asignar un valor ao mesmo tempo. Esta é realmente unha fermosa cousa común de facer. Cando se crea unha variable, normalmente quere que ten algún valor básico. Aínda que sexa 0 ou algo así. Só vostede darlle un valor. Pode iniciar unha variable. Int número é igual a 17 é o mesmo que as dúas primeiras liñas de código enriba. Char carta é igual a h é o mesmo que o terceira e cuarta liñas de código anterior. O takeaway máis importante aquí cando estamos declarando e atribuíndo variables é despois que temos declarou el, aviso Non está a usar o tipo de datos de novo. Eu non estou dicindo número int igual a 17 na a segunda liña de código, por exemplo. Só estou dicindo que é igual a número 17. Unha vez máis, re-declarar unha variable despois xa declarou que pode levar para algunha consecuencia estraño. Entón, só tes que ter coidado con iso. Eu son Doug Lloyd. E este é CS50.