}

Linguaxe de programación C (III). Axentes e Expresións

1991/04/01 Alegria Loinaz, Iñaki | Maritxalar, Montse Iturria: Elhuyar aldizkaria

Na linguaxe C utilízase un operador paira representar una operación. A combinación de variables e/ou constantes cos axentes xera expresións.

Tras analizar as variables e constantes no capítulo anterior, o obxectivo deste capítulo é ver como se poden combinar as variables e constantes mencionadas paira formar expresións.

Na linguaxe C utilízase un operador paira representar una operación. A combinación de variables e/ou constantes cos axentes dá lugar a expresións que consisten nunha ou varias expresións, combinadas cos axentes, nunha orde. Hai moitos máis que os operadores = (asignación) + (suma) – (resta) e * (multiplicación) que utilizamos nos programas dos capítulos anteriores. Antes de analizar un a un, analizaremos dúas características principais dos axentes: a prioridade e a compatibilidade.

Táboa . Axentes e a súa prioridade e compatibilidade.

Características dos axentes

Cando hai máis dun axente nunha expresión, a orde de avaliación depende da prioridade dos axentes. Realízanse as operacións de maior prioridade obtendo os primeiros resultados de traballo. Posteriormente, e seguindo a orde decreciente de prioridade, aplícanse os seguintes axentes sobre os resultados de traballo anteriores. As parénteses, do mesmo xeito que noutras linguaxes, modifican a orde da avaliación. Por exemplo, a avaliación de 2 + 3 * 4 xera 14 porque a multiplicación ten un grao de prioridade maior que a suma.

A converxencia dinos como se realiza a avaliación, de esquerda a dereita ou viceversa. Por exemplo, mentres o operador ten a compatibilidade dereita esquerda, os operadores aritméticos comúns (+, –, *) teñen a de esquerda a dereita.

a = b = c

avalíase pola dereita. Por tanto, b primeiro e a despois toman o valor de c.

a + b - c

pola contra, avaliarase de esquerda a dereita. Na táboa 1 móstranse os axentes máis relevantes e a súa compatibilidade en orde de prioridade.

Imos analizar os axentes que aparecen na táboa.

Táboa . Operadores aritméticos.

Operadores aritméticos

Como se pode observar na Táboa 2, á marxe das operacións habituais, preséntanse outras dúas, o incremento e o decremento. En ambos os casos prodúcese a asignación e aínda que se poden expresar doutra maneira, introducíronse dentro da linguaxe C en aras á comodidade e eficacia, ás veces difíciles de ler os programas.

Cabe destacar a existencia dun único axente paira a división, tanto total como real (fronte ao PASCAL, div e / ou operadores diferéncianse). Se os operandos son completos, o resultado será o da totalidade da división e no resto o real (ver táboa 3).

Táboa . División total e real.

O módulo, o operador%, só se pode utilizar con operandos completos.

Exemplo:

Condición número par (x 2%) = = Ø

Axentes de manexo de bits

Entre as características da linguaxe C atópase a capacidade de captura de bits, para o que se dispón dos axentes descritos na táboa 4. Como é sabido, a operación AND utilízase paira pór varios bits en Ø, paira pór a operación OR en estado 1 e cambiar o estado xor (bits). Paira iso emparéllase una variable tipo carácter (8 bits), short (16 bits) ou long (32 bits) cunha máscara indicada en hexadecimal (prefixo Øx). Aos bits que se queren manter na máscara asígnaselles o valor Ø e aos que se queren pór nun (OR) ou cambiar (XOR) o valor. A operación AND realízase ao revés e paira iso pódese utilizar o operador.

Táboa . Axentes de manexo de bits.

Por exemplo, se a variable n está composta por 8 bits (sen coñecer o seu valor) e colócase nun bit á esquerda, ponse a cero a dereita e quérense cambiar os dous centrais, débese:

Táboa . Factores relacionales.
n = n | Øx8Ø n = n ( ØxØ1) n = n^ Øx18

/* n ?ó /* n ?ó /* n ?ó

xxxx xxxx */ 1xxx xxxx */

1xxx xxx Ø */ 1xxx– x–xxØ */

Os desprazamentos serven sobre todo paira utilizar o manexo de bits en estruturas repetitivas, como veremos no capítulo 5.

Factores de relación

Os operadores relacionales utilízanse principalmente paira representar as condicións (ver táboa 5). En calquera caso, a linguaxe C pode ser calquera condición de expresión; a asignación, ...

Cando una expresión non relacional é condición, a avaliación da expresión considérase falsa cando Ø é e no resto dos casos como verdadeira. Por iso, hai que ter moito coidado coa relación de igualdade, xa que é moi fácil pór = = en lugar de = (asignación), como se fai noutras linguaxes. En consecuencia, o resultado da condición a verificar dependerá do valor asignado.

int n = Ø

if (n=Ø) /* sempre falsa, xa que a asignación é */ if (n = Ø) /* neste caso o verdadeiro é n Ø xa */

Cabe destacar que as cadeas de caracteres non se poden combinar cos operadores observados, xa que as cadeas de caracteres non son datos básicos (ver capítulo 7).

Outros axentes

Estes axentes teñen moito que ver coas estruturas de datos e os demostradores e profundarase no capítulo 7 (ver táboa 6).

Táboa .

Axentes combinados

Estes axentes combinan una operación coa asignación, sendo o resultado e o operando 1 sempre a mesma variable. Desta forma pódese substituír x=x+por x+= a, x=x 3 por x =3 etc.

Estes axentes son:

+= % =–= =

*= |=


/= =

Gai honi buruzko eduki gehiago

Elhuyarrek garatutako teknologia