C/Variables: Diferenzas entre revisións
Contido eliminado Contido engadido
m Continúo coa tradución |
Continúo a tradución (sigo traducindo, pero gardo por se acaso) |
||
Liña 3:
Coma a maioría das linguaxes de programación, C é quen de usar e procesar as chamadas variables e mailo seu contido. As '''variables''' son simples verbas usadas para referirse a unha localización na memoria - unha localización pode conter un valor co que esteamos a traballar.
Axudaría pensar nas variables coma aquelas que lle gardan un sitio a un valor. Podes pensar nunha variable como aquilo que equivale ao seu valor. Polo tanto, se tes unha variable <
Posto que C é relativamente unha linguaxe de programación de baixo nivel, antes de que un programa en C poida utilizar memoria para almacenar unha variable debe reclamar a memoria requerida para almacenar os valores desa variable. Isto faise ao '''declarar''' variables. Declarar variables é a forma que ten un programa en C para amosar o número de variables que precisa, o nome que van ter, e a cantidade de memoria que necesitarán.
Liña 12:
==Declarar, inicializar e asignar variables==
No seguinte exemplo declararase un número enteiro (''integer'' en inglés), que chamaremos <
'''<font style="color:#1b991b">int</font>''' numero_calquera;
Esta declaración significa que estamos a reservar espazo para unha variable chamada <
Pódense declarar múltiples variables cunha soa declaración, deste xeito:
Liña 55:
Agora exemplos de variables que non valen:
2_cervexas <font style="color:blue">// Non pode comezar cunha cifra</font>
non si <font style="color:blue">// Non se poden usar espazos nos nomes</font>
while <font style="color:blue">// Tampouco valen as palabras clave da linguaxe C, tales coma "for", "if", "else"</font>
Quero_€_e_$ <font style="color:blue">// Carácteres coma € e $ non se poden usar, só letras, números e _</font>
E_logo? <font style="color:blue">// E dalle! "?" non é unha letra, nin un número, nin moito menos _</font>
isto_é_algo <font style="color:blue">// Non, nada de tils, así que nada de á, é, í, ó, ú</font>
pingüin_voador <font style="color:blue">// Nada de lle poñer puntiños enriba ao u</font>
ñu <font style="color:blue">// Dá a casualidade de que o ñ tampouco vale</font>
çà&#... <font style="color:blue">// En fin, ante as dúbidas, comprobade se o que escribides está no '''[[w:Alfabeto_latino#Grafemas fundamentais|alfabeto latino fundamental]]''', é unha cifra ou é '''_'''</font>
Como dí o terceiro exemplo, algunhas verbas están reservadas coma parabras clave na linguaxe C, polo que non se poden usar coma nomes de variable.
Liña 78:
Na linguaxe C estándar hai catro tipos básicos de variable:
===<
As variables de tipo <
Se queres declarar unha nova variable de tipo <
'''<font style="color:#1b991b">int</font>''' NumeroDePaxinas, i, l=<font style="color:#ff48ff">5</font>;
Nesta declaración declaramos tres variables: <
===<
As variables de tipo <
Exemplos de carácteres literais son "a", "b", "1", etc., así coma algúns carácteres especiais coma "<
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.
Liña 96:
'''<font style="color:#1b991b">char</font>''' letra1 = <font style="color:#ff48ff">'a'</font>;
Isto é "boa" programación xa que permite que calquera que lea o código vexa que <
A segunda forma, que non debería de usarse, é
Liña 102:
'''<font style="color:#1b991b">char</font>''' letra2 = <font style="color:#ff48ff">97</font>; <font style="color:blue">// En ASCII, "a" equivale a 97</font>
Algúns considérano unha moi mala práctica de programación, se estamos a usalo para almacenar un
Hai que destacar que os
Hai outro tipo de literal que ten que ser explicado en relación aos
===
<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>.
===
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>.
==
Se te xurde calquera dúbida respecto do uso de memoria que fai en realidade calquera tipo (e isto vai tamén por tipos que se explicarán máis adiante), podes utilizar o operador <tt>'''sizeof'''</tt> para descubrilo con exactitude. A súa sintaxe é:
'''<font style="color:#bb2323">sizeof</font>''' object
'''<font style="color:#bb2323">sizeof</font>'''(type)
'''<font style="color:#1b991b">size_t</font>''' size;
'''<font style="color:#1b991b">int</font>''' i;
size = '''<font style="color:#bb2323">sizeof</font>'''(i);
<tt>size</tt>
'''<font style="color:#bb2323">sizeof</font>'''('''<font style="color:#1b991b">char</font>''');
Sempre devolverá <tt>1</tt>.
==Modificadores do tipo de datos==
Pódese alterar o tipo almacenamento de datos ao precedelos de certos modificadores.
<tt>'''long'''</tt> e <tt>'''short'''</tt> son modificadores que fan posible que un tipo de datos use máis ou menos memoria. A palabra clave <tt>int</tt> non necesita ir tras as palabras clave <tt>'''long'''</tt> e <tt>'''short'''</tt>. Un <tt>short</tt> pode usarse onde os valores se atopan ao redor dun rango menor ca o dun <tt>int</tt>, normalmente de <tt>-32768</tt> a <tt>32767</tt>. Un <tt>long</tt> pode usarse para conter un rango estendido de valores. Non está garantido que un <tt>short</tt> use menos memoria ca un <tt>int</tt>, nin o está que un <tt>long</tt> use máis. O único garantido é que <tt>sizeof(short) <= sizeof(int) <= sizeof(long)</tt>. Normalmente un <tt>short</tt> ten 2 bytes, un <tt>int</tt> 4 bytes, e un <tt>long</tt> entre 4 e 8 bytes.
En todos os tipos descritos anteriormente, unha parte úsase para indicar o signo (positivo ou negativo) dun valor. Se decides que a variable nunca vai ter un valor negativo, poderías usar o modificador <tt>'''unsigned'''</tt> para usar esa parte para almacenar outros datos, dobrando así o rango de valores ao asegurar que estes serán positivos. O modificador <tt>unsigned</tt> tamén pode usarse sen necesidade de incluír o <tt>int</tt>, en cuxo caso o tamaño defínese coma o dun <tt>int</tt>. Tamén hai un modificador <tt>'''signed'''</tt> que fai o contrario, pero non é necesario, agás para certos usos de <tt>char</tt>, pois todos os tipos (agás o <tt>char</tt>) están predefinidos coma <tt>signed</tt>.
Para usar un modificador, simplemente declara a variable co tipo de datos e os modificadores relevantes:
'''<font style="color:#1b991b">unsigned short int</font>''' e; <font style="color:blue">// Completamente calificado: unsigned short int</font>
'''<font style="color:#1b991b">short</font>''' logo; <font style="color:blue">// short int</font>
'''<font style="color:#1b991b">unsigned
▲== <tt>const</tt> qualifier ==
When the <tt>'''const'''</tt> qualifier is used, the declared variable must be initialized at declaration. It is then not allowed to be changed.
|