>> [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.