Los operadores de incremento (decremento) requieren una expresión de valor L

¿Cuál será la salida del siguiente programa?

#include<stdio.h>
int main()
{
   int i = 10;
   printf("%d", ++(-i));
   return 0;
}
A)  B)  C)  D) 

Respuesta: D, Ninguno – Error de compilación.

Explicación:

En C/C++, los operadores de incremento previo (decremento) y de incremento posterior (decremento) requieren una expresión de valor L como operando. Proporcionar un valor R o una variable calificada const da como resultado un error de compilación.

En el programa anterior, la expresión -i da como resultado el valor R, que es el operando del operador de preincremento. El operador de incremento previo requiere un valor L como operando, por lo tanto, el compilador arroja un error.

Los operadores de incremento/decremento necesitan actualizar el operando después del punto de secuencia , por lo que necesitan un valor L. Los operadores unarios como -, +, no necesitarán el valor L como operando. La expresión -(++i) es válida.

En C++ las reglas son un poco complicadas debido a las referencias. Podemos aplicar estos operadores de incremento (decremento) pre/post en variables de referencia que no están calificadas por const . Las referencias también se pueden devolver desde funciones.

Rompecabezas expresado por  Venki . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *