Operadores e Pontuação

Aqui descrevemos a sintaxe lexical de operadores e de pontuação em C. Os operadores específicos de C e seus significados são apresentados em capítulos subsequentes.

A maioria dos operadores em C consiste em um ou dois caracteres que não podem ser usados em identificadores. Os caracteres usados para operadores em C são ‘!~^&|*/%+-=<>,.?:’.

Alguns operadores são de um único caractere. Por exemplo, ‘-’ é o operador de negação (com um operando) e o operador de subtração (com dois operandos).

Alguns operadores são de dois caracteres. Por exemplo, ‘++’ é o operador de incremento. O reconhecimento de operadores de múltiplos caracteres funciona agrupando tantos caracteres consecutivos quanto possível para constituir um operador.

Por exemplo, a sequência de caracteres ‘++’ é sempre interpretada como o operador de incremento; portanto, se quisermos escrever duas instâncias consecutivas do operador ‘+’, devemos separá-las com um espaço para que não se combinem como um único token. Aplicando a mesma regra, a+++++b é sempre tokenizado como a++ ++ + b, e não como a++ + ++b, mesmo que a última forma pudesse fazer parte de um programa C válido, e a primeira não (já que a++ não é um lvalue e, portanto, não pode ser o operando de ++).

Alguns operadores de C são palavras-chave em vez de caracteres especiais. Eles incluem sizeof (veja ) e _Alignof (veja ).

Os caracteres ‘;{}’ são usados para pontuação e agrupamento. O ponto e vírgula (‘;’) termina uma declaração. As chaves (‘{’ e ‘}’) iniciam e terminam um bloco no nível da declaração (veja ), e cercam o inicializador (veja ) para uma variável com múltiplos elementos ou campos (como arrays ou structs).

Colchetes (‘[’ e ‘]’) são usados para indexação de arrays, como em array[5].

Parênteses são usados em expressões para o aninhamento explícito de expressões (veja ), ao redor das declarações de parâmetros em uma declaração ou definição de função, e ao redor dos argumentos em uma chamada de função, como em printf("Foo %d\n", i) (veja ). Vários tipos de declarações também usam parênteses como parte de sua sintaxe — por exemplo, declarações if, declarações for, declarações while e declarações switch. Veja e seções seguintes.

Parênteses também são necessários ao redor do operando das palavras-chave dos operadores sizeof e _Alignof quando o operando é um tipo de dado em vez de um valor. Veja .

Atualizado