| layout |
|
|---|
Uma expressão de atribuição simples calcula o valor do operando à direita e o armazena no lvalue à esquerda. Aqui está uma expressão de atribuição simples que armazena 5 em i:
i = 5Dizemos que isso é uma atribuição para a variável i e que atribui a i o valor 5. Não tem ponto e vírgula porque é uma expressão (portanto, tem um valor). Adicionar um ponto e vírgula no final a tornaria uma instrução (veja Instrução de Expressão1).
Aqui está outro exemplo de uma expressão de atribuição simples. Seus operandos não são simples, mas o tipo de atribuição feita aqui é uma atribuição simples.
x[foo ()] = y + 6Uma atribuição simples com dois tipos de dados numéricos diferentes converte o valor do operando à direita para o tipo do lvalue, se possível. Ela pode converter qualquer tipo numérico para qualquer outro tipo numérico.
A atribuição simples também é permitida em alguns tipos não numéricos: ponteiros (veja Ponteiros2), estruturas (veja Atribuição de Structs3) e uniões (veja Uniões4).
Aviso: A atribuição não é permitida em arrays porque em C não existem valores de array; variáveis em C podem ser arrays, mas esses arrays não podem ser manipulados como um todo. Veja Limitações de Arrays em C5.
Veja Conversões de Tipos em Atribuições6 para as regras completas sobre tipos de dados usados em atribuições.