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.