C/Variables: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
Gallaecio (conversa | contribucións)
Limpei a páxina de literais e tipos de dato
Liña 62:
numero=numero+1; // Podes mesmo asignarlle a unha variable o resultado dunha operación na que participa dita variable.
</source>
 
==Literais==
 
En calqura momento nun programa no que especifiques un valor esplícito en vez de te referires a unha variable ou outro tipo de dato, ese valor considérase '''literal'''. No exemplo anterior de inicialización, <font style="color:#ff48ff">3</font> é un literal. Os literais poden tomar unha forma definida polo seu tipo (verémolo máis adiante) ou pódese usar o sistema hexadecimal (hex) para inserir directamente datos na variable sen ter en conta o seu tipo. Os números hexadecimais van sempre precedidos de ''0x''. Polo de agora, non tes por que estar interesado nos números hexadecimais, non te preocupes.
 
==Tipos==
Na linguaxe C estándar hai catro tipos básicos de variable:
 
===<tt>int</tt>===
As variables de tipo <tt>int</tt> almacenan números enteiros. O seu tamaño habitual é de 32 bits, aínda que as computadoras de 64 están a extenderse. Exemplos de literais son números enteiros coma 1, 2, 3, 6, 13, 102... Cando un <tt>int</tt> é de 32 bits, pode almacenar calquera número enteiro entre o -2147483648 e o 2147483647. Pero tampouco te preocupes de memorizar isto.
 
Se queres declarar unha nova variable de tipo <tt>int</tt>, utiliza a palabra clave <tt>int</tt>:
<source lang="c">
int NumeroDePaxinas, i, l=5;
</source>
Nesta declaración declaramos tres variables: <tt>NumeroDePaxinas</tt>, <tt>i</tt> e <tt>l</tt>, séndolle a éste último asignado o literal <tt>5</tt>.
 
===<tt>char</tt>===
As variables de tipo <tt>char</tt> poden ter como valor calquera carácter. Almacena o mesmo tipo de datos ca un <tt>int</tt>, pero sempre ten un byte (8 bits) de tamaño. Unha variable de tipo <tt>char</tt> úsase habitualmente para almacenar datos de carácteres. A maioría das veces utilízace o sistema [[w:ASCII|ASCII]] para os carácteres, pero disto non hai que preocuparse de momento.
 
Exemplos de carácteres literais son "a", "b", "1", etc., así coma algúns carácteres especiais coma "<tt>0</tt>", o caracter nulo, e "<tt>\n</tt>, o salto de liña.
 
Cando inicializamos unha variable de caracter, podemos facelo de dúas maneiras. A primeira é a favorita, e a segunta considérase un mal xeito de programar.
<source lang="c">
char letra1 = 'a';
</source>
Isto é "boa" programación xa que permite que calquera que lea o código vexa que <tt>letra1</tt> inicialízace coa letra <tt>'a'</tt>.
 
A segunda forma, que non debería de usarse, é
<source lang="c">
car letra2 = 97; // En ASCII, "a" equivale a 97
</source>
Algúns considérano unha moi mala práctica de programación, se estamos a usalo para almacenar un carácter, non un número pequeno, xa que se alguén le o código, verase na obriga de buscar o carácter que equivale ao número 97. A fin de contas, <tt>letra1</tt> e <tt>letra2</tt> veñen ser o mesmo, pero é moito máis recomendable usar a primeira forma.
 
Hai que destacar que os caracteres de números represéntanse de xeito diferente aos propios números. Non é o mesmo <tt>'1'</tt> (carácter) que <tt>1</tt>.
 
Hai outro tipo de literal que ten que ser explicado en relación aos caracteres: o '''literal de cadea'''. Unha cadea son unha serie de caracteres, xeralmente con intención de ser amosados. Están delimitados por comiñas dobres ('''"'''). Exemplo de literal de cadea é o <source lang="c">"Ola mundo!\n"</source> do [[Programación en C/Ola mundo|clásico exemplo de C]].
 
===<tt>float</tt>===
<tt>float</tt> é a abreviatura en inglés de ''punto flotante'' ([http://es.wikipedia.org/wiki/Coma_flotante explicación en castelán]). Este tipo de variables almacenan números reais tamén, mais é só de unha palabra máquina de tamaño. Polo tanto, utilízase cando se precisa menos precisión da que proporciona unha variable de tipo <tt>double</tt>. Os literais <tt>float</tt> deben levar o sufixo F ou f, do contrario interpretaranse coma <tt>doubles</tt>. Son exemplos: <tt>3,1415926f</tt>, <tt>4,0f</tt>, <tt>6,022e+23f</tt>. As variables de tipo <tt>float</tt> poden declararse usando a palabra clave <tt>float</tt>.
 
===<tt>double</tt>===
As variables de tipo <tt>double</tt> e <tt>float</tt> soi moi parecidas. As de tipo <tt>float</tt> permítenche almacenar números de punto flotante de ''single-precision'' ([http://en.wikipedia.org/wiki/Single_precision explicación en inglés]), noutras verbas, números reais, con valores enteiros ou non. O seu tamaño é habitualmente de dúas palabras máquina, ou 8 bytes na maioría das computadoras. Son exemplos de literais de tipo <tt>double</tt> <tt>3,1415926535897932</tt>, <tt>4,0</tt>, <tt>6,022e+23</tt> ([http://es.wikipedia.org/wiki/Notaci%C3%B3n_cient%C3%ADfica artigo sobre notación científica en castelán]). Se usases <tt>4</tt> en lugar de <tt>4,0</tt>, o 4 interpretaríase coma un enteiro (<tt>int</tt>).
 
A distinción entre <tt>floats</tt> e <tt>doubles</tt> fíxose no seu momento para diferenciar os tamaños dos dous tipos. A primeira vez que se utilizou C, o espazo estaba en mínimos polo que o uso dun <tt>float</tt> en lugar dun <tt>double</tt> xustificábase por aforrar algo de memoria. A día de hoxe, con moita máis memoria dispoñible, non é realmente necesario conservar memoria deste xeito. Sería mellor usar sempre <tt>doubles</tt>. Ademais, algunhas implementacións de C utilizan <tt>doubles</tt> en lugar de <tt>floats</tt> cando declaras unha variable de tipo <tt>float</tt>.
 
Para usar unha variable de tipo <tt>double</tt>, utiliza a palabra clave <tt>double</tt>.
 
==<tt>sizeof</tt> ==