C/Variables: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
Sen resumo de edición
Gallaecio (conversa | contribucións)
Revisión inicial. Comeza o choio!
Liña 1:
{{Navegador|Constantes literais|Identificadores|Tipos fundamentais}}
 
{| align="right" style="margin-left: 1em;"
==Introdución ás variables==
| __TOC__
Coma a maioría das linguaxes de programación, '''C''' pode usar e procesar as chamadas variables e mailo seu contido. As '''variables''' son simples palabras usadas para referirse a unha localización na memoria, que pode conter un valor co que esteamos a traballar.
|} <!-- Isto sitúa o índice á dereita -->
 
Coma a maioría das linguaxes de programación, '''C''' pode usar e procesar as chamadas variables“variables” e mailo seu contido. As '''variables''' son simples palabras usadas para referirse a unha localización na memoria, que pode conter un valor co que esteamosse estea a traballar no programa.
Axudaría pensar nas variables coma aquelas que lle gardan un sitio a un valor. Pódese pensar nunha variable coma aquilo que equivale ao seu valor. Polo tanto, se tes unha variable chamada <code>i</code>, á que lle asignaches o valor <code>4</code>, entón o resultado da operación <code>i + 1</code> será <code>5</code>.
 
==Declaración de variables==
As declaracións de variables confórmanas un [[{{BASEPAGENAME}}/Tipos fundamentais|tipo de dato]] e un [[{{BASEPAGENAME}}/Identificadores|identificador]], que será o nome da variable. A seguinte sería a súa sintaxe fundamental:
No tema das variables, pódese considerar C unha linguaxe de baixo nivel. Os programas escritos en C, ao executarse, reservan na memoria o espazo que van precisar para manexar as súas variables. Isto implica que de antemán o programa ten que saber as variables que se van usar, e o espazo que van ocupar en memoria. Para iso decláranse as variables, isto é, antes de que aparezan no programa as operacións con variables é preciso que aparezan unhas liñas de código que fornezan estes datos sobre as variables que se van usar.
<source lang="c">
 
<tipo de dato> <identificador da variable>;
Declarar variables é a forma que ten un programa en C para amosar o número de variables que precisa, o [[{{BASEPAGENAME}}/Identificadores|nome]] que van ter e a cantidade de memoria que necesitarán, estando este último aspecto ligado directamente ao [[{{BASEPAGENAME}}/Tipos de datos fundamentais|tipo de dato]] da variable.
</source>
 
'''Todas''' as variables en C están suxeitas a un "tipo". Isto quere dicir que toda variable declarada deberá asignarse a un certo tipo. [[{{BASEPAGENAME}}/Tipos de datos fundamentais|Máis adiante]] estudaremos os tipos que existen en C.
 
===Onde declarar unha variable===
As variables poden declararse:
*tras as ordes para o precompilador, e antes das definicións de funcións,
*dentro dun bloque de sentencias, ao comezo do mesmo (antes de calquera outra sentencia),
*como parámetro dunha función.
 
A diferencia entre os dous primeiros casos comprenderase [[{{PAGENAME}}#Ámbito|máis adiante nesta páxina]]. Respecto ás declaracións de variables como argumentos de funcións, xa se verá [[{{BASEPAGENAME}}/Funcións|noutro tema]].
 
Un exemplo básico de declaración dunha variable podería ser o seguinte:
===Declarar unha variable===
No seguinte exemplo declararase un número enteiro (''integer'' en inglés), que chamaremos <code>numero</code>. Non esquezas facer fincapé no punto e coma en que remata a liña, pois así rematan todas as declaracións, e esquecer rematalas co punto e coma vai ser un erro habitual cando empeces a facer os teus primeiros programiñas.
<source lang="c">
int numero;
</source>
 
Pódense declarar múltiples variables dun mesmo tipo nunha soa sentencia, separando os identificadores conmediante comas., Vexamostal une como pode verse no seguinte exemplo:
Esta declaración significa que estamos a reservar espazo en memoria interna para unha variable chamada <code>numero</code>, a cal será usada para almacenar datos, que serán sempre números enteiros (<code>int</code>). Este exemplo serve simplemente para que te familiarices coa declaración de variables, cuxa sintaxe fundamental se reduce a:
<tipo de dato> <identificador da variable>;
 
Non ten máis complicación.
 
===Declarar máis dunha variable nunha soa sentencia===
Pódense declarar múltiples variables dun mesmo tipo nunha soa sentencia, separando os identificadores con comas. Vexamos un exemplo:
<source lang="c">
int numero1, numero2, numero3;
</source>
 
Ao declarar unha variable, o seu valor corresponderase cos datos que houbese previamente no espazo de memoria reservado para a variable. Este valor é o que se denomina “lixo” (valor non desexado). As variables pódense ''inicializar'' ─asignarlles un valor inicial na súa declaración─. Para facelo, abonda con utilizar o carácter de [[#Asignación de valores|asignación]], «<code>=</code>», como se amosa no seguinte exemplo:
No exemplo estamos declarando tres variables de tipo <code>int</code>: <code>numero1</code>, <code>numero2</code>, <code>numero3</code>. Deste xeito, podemos ampliar a nosa sintaxe para a declaración de variables coa posibilidade de declarar máis dunha nunha soa sentencia:
<source lang="c">
<tipo> <identificador1> [, <identificador2>, <identificador3>, ...]
int numero = 3;
float base = 12.34, altura = 56.78;
// No código fonte a “coma” dos decimais é un punto, como na escrita inglesa.
</source>
 
As variables poden declararse:
As declaracións de variables, salvo que sexan [[{{PAGENAME}}#Variables globais|globais]], teñen que facerse ao principio dos [[{{BASEPAGENAME}}/Vocabulario#bloque|bloques]] nos que se van utilizar, é dicir, antes que calquera outra sentencia de dito bloque.
*tras as ordes para o precompilador, e antes das definicións de funcións,
*dentro dun bloque de sentencias, ao comezo do mesmo (antes de calquera outra sentencia), ou
*como parámetro dunha función.
 
A diferencia entre os dous primeiros casos comprenderaseé o [[{{PAGENAME}}#Ámbito|máisámbito adiantede nestaacción páxinada variable]]. Respecto ás declaracións de variables como argumentos de funcións, xavéxase seo veráartigo sobre [[{{BASEPAGENAME}}/Funcións|noutro#Definición temadunha función|funcións]] para máis información ao respecto.
===''Inicializar'' variables===
Ao declarar unha variable, é dicir, ao reservarlle un espazo na memoria, o valor da variable corresponderase cos datos que haxa nese espazo de memoria que agora quedou reservado para a variable. É coma se mercas un terreo, e nel hai árbores, arbustos, etc. Este contido non desexado adoita chamarse "lixo".
 
As declaracións de variables, salvo─salvo que sexan [[{{PAGENAME}}#Variables globais|globais]], teñen que facerse ao principio dos [[{{BASEPAGENAME}}/Vocabulario#bloque|bloques]] nos que se van utilizar, é dicir, antes que calquera outra sentencia de dito bloque.
Moitas veces non importa que a variable conteña lixo ao principio, pois nalgún momento do programa gardamos algún dato na variable, e este dato substitúe ao lixo. Pero hai veces que xa dende o principio necesitamos que unha variable conteña un valor. Se ven isto se pode facer cunha operación moi simple, aforramos tempo se nada máis declarar a variable lle asignamos un valor. A esta operación chámaselle ''inicializar'' a variable.
 
==Asignación de valores==
''Inicializar'' unha variable é tan doado como isto:
Para asignarlle un valor a unha variable que foi previamente declarada utilízase o símbolo de asignación, o «<code>=</code>», seguido dunha expresión, cuxo resultado quedaría almacenado na variable. A seguinte sería a sintaxe fundamental:
<tipo> <variable>=<valor inicial>;
<source lang=c>
 
variable = expresión;
Estes son algúns exemplos de ''inicialización'' de variables:
<source lang="c">
int numero=3;
long int dinero=1500;
float base=12.34, altura=56.78;
</source>
 
A continuación amósanse algúns exemplos de asignacións de valores a variables:
==Asignar valores a unha variable==
Unha vez declaradas as variables, podes asignarlles valores en calquera momento mediante unha sentencia do tipo:
<variable>=<valor>
 
Claro que non é necesario escribir directamente dito valor. Pode ser o resultado dunha operación, ou mesmo o valor que contén outra variable. Vexamos uns exemplos:
<source lang="c">
numero = 3;
numero=3; // Asignámoslle directamente un valor.
numero1 = numero2 = numero3 = 25; // Deste xeito poder asignarlleAsígnaselle o mesmo valor, a«25», ás tres variables distintas á vez.
metade = 1 / 2;
metade=1/2; // Asignámoslle o resultado dunha división.
numero1 = numero2 + numero3;
numero1=numero2+numero3; // Sumaranse os valores das variables numero2 e numero3, e o resultado asignaráselle á variable numero1.
numero=numero+1; // Podes mesmo asignarlle a unha variable o resultado dunha operación na que participa dita variable.
</source>
 
==Ámbito==
É importante ter sempre en conta a diferencia entre tipos de variable locais e globais, e como declarar variables de cada un deles. Para declarar unha variable local, hai que emprazar a declaración ao comezo do bloque para o que a variable será local. Para declarar unha variable global, declaraesta a variabledeclárase fóra de calquera bloque. As variables globais poden ser lidas e escritas dende calquera punto do teu programa.
 
As variables globais están consideradas coma unha mala práctica de programación, e deberían evitarse sempre que fose posible. Dificultan a lectura do código, crean conflitos cos nomes e poden dificultar a localización de erros nos programas. O uso abusivo de variables globais adoita ser signo de pereza e/ou pobreza no deseño. De todos xeitos, nunha situación en que as variables globaislocais poderían crear código máis difícil de ler, non hai problema en utilizar as locais. Máis adiante veremos exemplos de funcións que son máis difíciles de escribir se o facemos sen unha variable globalglobais.
 
Cómpre ter en conta que, tras declarar unha variable global, é posible declarar unha variable local dentro dun bloque de sentencias co mesmo identificador que a variable global. Nese caso, a variable global será ignorada para as sentencias do bloque en cuestión.
 
 
{{Navegador|Constantes literais|Identificadores|Tipos fundamentais}}
 
<!-- Categorías: -->