C/Operadores: Diferenzas entre revisións

Contido eliminado Contido engadido
Gallaecio (conversa | contribucións)
Sen resumo de edición
Gallaecio (conversa | contribucións)
Primeira revisión
Liña 1:
{{Navegador|typedefTamaño|Introdución ás sentenciasInstrucións de control}}
 
==Operadores aritméticos==
Á hora de realizar operacións aritméticas, hai que ter en conta dúas cousas: (1) a orde de prioridade dos operadores, que é similar á das matemáticas, e (2) o [[{{PAGENAMEBASEPAGENAME}}#/Tipos de datofundamentais|tipo de dato]] dos valores que forman parte das expresións aritméticas.
 
Os seguintes operadores están organizados en grupos de prioridade á hora de executarse:
<table border="1" cellspacing="0" cellpadding="5">
 
<tr>
<td>
;( ):Os parénteses establecen prioridade de execución para o seu contido respecto do que hai fóra.
</td>
 
</tr>
 
<tr>
<td>
;<code>&</code>:Precedendo a unha variable calquera, indica que se traballa co enderezo de memoria en que esta se garda en lugar de traballar co seu valor.
 
;&#42;:Precedendo a un [[{{BASEPAGENAME}}/Punteiros|punteiro]], indica que se traballa co contido do espazo de memoria ao que apunta, e non co contido do punteiro. É dicir, traballarase co valor da variable á que apunta o punteiro en vez de co valor do punteiro.
 
;<code>sizeof()</code>:Aínda que semella unha función, <code>sizeof()</code> está consideradoé un operandooperador de C. Devolve a cantidade de bytes que ocupa en memoria unha variable ou un tipo de dato fornecido coma argumento. Exemplo:
:<source lang=c>sizeof(int);</source>
:<source lang=c>sizeof(variable);</source>
</td>
 
</tr>
 
<tr>
<td>
;<code>*</code>:Multiplicación.
 
;<code>/</code>:División.
 
;<code>%</code>:Resto dunha división de números [[{{BASEPAGENAME}}/Tipos de datos fundamentais#Enteiros|enteiros]].
:Non fai falla que tanto dividendo coma divisor sexan números enteiros. Abonda con que un dos dous o sexa.
:Este operador resulta moi útil enao traballar con [[{{BASEPAGENAME}}/ExpresiónsInstrucións de control|expresiónsinstrucións de control]],. paraPermite comprobarpor se,exemplo comprobar nunha división, se o dividendo é un múltiplo do divisor.
</td>
 
</tr>
 
<tr>
<td>
;<code>+</code>:Suma.
 
Liña 32 ⟶ 40:
 
;<code>-</code>:Complemento a dous (cambio de signo).
</td>
</tr>
</table>
 
==Operadores ''relacionais''de comparación==
*maior que: <code>></code>
*menor que: <code><</code>
*maior ou igual que: <code>>=</code>
*menor ou igual que: <code><=</code>
*igual que: <code>==</code><ref>Non comfundirconfundir con <code>=</code>, o símbolo de asignación de valores ás variables.</ref>
*distinto de: <code>!=</code>
 
Liña 47 ⟶ 58:
 
==Sentencias operativas==
Estes dous operadores, xunto coa variable coa que se utilicen, forman de por si unha senteciasentencia de C. Isto significa que non tería sentido mesturalos con outros operadores nunha expresión, porque forman xa de por si unha expresión.
 
;++:Incremento. Incrementa nunha unidade a variable que o segue ou o precede.
Liña 54 ⟶ 65:
:<source lang=c>a++</source>
:<source lang=c>++a</source>
:A diferencia entre situar a variable antes ou despois do operador radica na combinación da expresión coa asignación do resultado a unha variable, ou a súa utilización nunha función coma [[{{BASEPAGENAME}}/printf|<code>printf()</code>]].
:<source lang=c>b = a++ // ''Posincremento''Incremento posterior, equivale a: ab = a + 1; ba = a + 1;</source>
:<source lang=c>b = ++a // ''Preincremento''Incremento previo, equivale a: ba = a + 1; ab = a + 1;</source>
 
;--:DecrementoRedución. Reduce nunha unidade a variable que o segue ou o precede.
:Por exemplo, as seguintes liñas de código son equivalentes, é dicir, o seu resultado é o mesmo:
:<source lang=c>a = a - 1;</source>
:<source lang=c>a--</source>
:<source lang=c>--a</source>
:A diferencia entre situar a variable antes ou despois do operador radica na combinación da expresión coa asignación do resultado a unha variable, ou a súa utilización nunha función coma [[{{BASEPAGENAME}}/printf|<code>printf()</code>]].
:<source lang=c>b = a-- // ''Posincremento''Redución posterior, equivale a: ab = a - 1; ba = a - 1;</source>
:<source lang=c>b = --a // ''Preincremento''Redución previa, equivale a: ba = a - 1; ab = a - 1;</source>
 
Téñase en conta que estas expresións non melloran o rendemento do programa, son simplemente formas alternativas de escrituraexpresar unha operación ou serie de operacións. É dicir, en lugar de usar as expresións de incremento e decrementoredución poden perfectamente usarse as súas equivalencias, mencionadas nos respectivos comentarios.
 
Algunhas persoas poden considerar estas expresións complicadas de entender (normal ao principio), e usar as equivalencias. Así e todo, úsense ou non estas formas, cómpre coñecelas para entendelas en caso de ler códigos alleos que as conteñan.
 
===Uso na sentencia <code>while</code>===
ÉCómpre interesanteasemade saber que:
:<source lang=c>while(variable[indice++]);</source>
equivale ao seguinte:
é o mesmo que:
:<source lang=c>for(i=0;variable[indice];indice++);</source>
 
Liña 85 ⟶ 96:
 
 
{{Navegador|typedefTamaño|Introdución ás sentenciasInstrucións de control}}
 
<!-- Categorías: -->