O que significa '??!??!' em linguagem C?

O símbolo ? é conhecido como operador condicional ternário em linguagem C. Ele possui a seguinte estrutura:

expressao1 ? expressao2 : expressao3;

A expressão1 é uma condição que será avaliada. Se essa condição for verdadeira, a expressao2 será retornada como resultado. Caso contrário, a expressao3 será retornada.

Por exemplo, considere o seguinte código:

int idade = 18; char* categoria = (idade >= 18) ? “adulto” : “jovem”;

Nesse caso, a condição “idade >= 18” é avaliada. Como a idade é igual a 18, a condição é verdadeira e a expressao2 “adulto” é retornada. O resultado final é que a variável “categoria” conterá a string “adulto”.

O símbolo ! em linguagem C é o operador de negação lógica. Ele inverte o valor de uma expressão booleana. Por exemplo:

int a = 5; int b = 2; if (!(a > b)) { printf(“A não é maior que B”); }

Nesse caso, a expressão “(a > b)” avalia se a é maior que b. Como essa expressão é falsa, o operador ! inverte o seu valor para verdadeiro, fazendo com que o bloco dentro do “if” seja executado e a mensagem “A não é maior que B” seja impressa.

Portanto, ? e ! são operadores com funcionalidades diferentes em linguagem C. O operador ? é utilizado para fazer avaliações condicionais e retornar diferentes resultados com base em uma condição. Já o operador ! é utilizado para inverter o valor de uma expressão booleana.