Dev - C++ - Duda sobre operador logico

 
Vista:
Imágen de perfil de DanielHeavyThrasher
Val: 26
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda sobre operador logico

Publicado por DanielHeavyThrasher (9 intervenciones) el 07/02/2021 13:02:24
Hola a todos, estoy iniciándome en el mundo de la programación y estoy aprendiendo de un libro que encontré en internet y mi duda es la siguiente: es sobre el operador logico "!" como pueden ver en la foto marcado con rojo hay una constante i que esta escrita asi !i (que se supone que su negación) pero i es una constante que esta definida(i=15) y no entiendo al final cual es la forma de resolver esta operacion ((!i - 1). El resultado que imprime el valor de k es 0. Les agradecería mucho de antemano su respuesta.
duda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.415
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda sobre operador logico

Publicado por Alfil (1270 intervenciones) el 07/02/2021 20:19:25
!i independientemente del valor asignado a i es igual a 0, es decir, es igual a false.

true = 1
false = 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de DanielHeavyThrasher
Val: 26
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda sobre operador logico

Publicado por DanielHeavyThrasher (9 intervenciones) el 08/02/2021 06:03:23
ahh entonces da igual el valor que tenga una constante..si esta es negada automaticamente sera falsa o 0 ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.415
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda sobre operador logico

Publicado por Alfil (1270 intervenciones) el 08/02/2021 12:31:17
No es una constante, es una variable, la diferencia entre una constante y una variable radica en que una variable puede modificar su valor, mientras que una constante no.

1
2
3
4
5
int i = 15;
i = i + 2; // i tiene el valor de 17;
 
const k = 15;
k = k + 2; // Error

No es que !i tengo el valor 0, como valor sigue teniendo asignado el valor que tenía, en esta caso 15; lo que sucede es que !i como operación booleana es false, y false tiene el valor 0, pero si posteriormente imprimiéramos el valor de i sería 15.

Para terminar de entender estas cosas lo mejor es experimentar en un compilador y tratar de entender los resultados que ofrece.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rodrigo
Val: 1.781
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda sobre operador logico

Publicado por Rodrigo (538 intervenciones) el 08/02/2021 15:16:30
Excepto que la variable valga 0, en ese unico caso !variable sera 1. En todo otro caso sera 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar