Saltar al contenido

¿Qué es una expresión y una declaración de expresión en c ++?

Te doy la bienvenida a nuestro sitio web, en este sitio encontrarás la resolución de lo que buscas.

Solución:

Un expresión es “una secuencia de operadores y operandos que especifica un cálculo” (esa es la definición dada en el estándar C ++). Ejemplos son 42, 2 + 2, "hello, world", y func("argument"). Las asignaciones son expresiones en C ++; también lo son las llamadas a funciones.

No veo una definición para el término “declaración”, pero básicamente es un fragmento de código que realiza alguna acción. Los ejemplos son declaraciones compuestas (que constan de cero o más declaraciones incluidas en ), declaraciones if, declaraciones goto, declaraciones de devolución y declaraciones de expresión. (En C ++, pero no en C, las declaraciones se clasifican como declaraciones).

Los términos declaración y expresión se definen con mucha precisión por la gramática del idioma.

Un declaración de expresión es un tipo particular de declaración. Consiste en una expresión opcional seguida de un punto y coma. Se evalúa la expresión y se descarta cualquier resultado. Por lo general, esto se usa cuando la declaración tiene efectos secundarios (de lo contrario, no tiene mucho sentido), pero puede tener una declaración de expresión donde la expresión no tiene efectos secundarios. Ejemplos son:

x = 42; // the expression happens to be an assignment

func("argument");

42; // no side effects, allowed but not useful

; // a null statement

El null declaración es un caso especial. (No estoy seguro de por qué se trata de esa manera; en mi opinión, tendría más sentido que fuera una declaración desinteresada. Pero esa es la forma en que el estándar lo define).

Tenga en cuenta que

return 42;

es una declaración, pero es no una declaración de expresión. Contiene una expresión, pero la expresión (más el ;) no constituye la declaración completa.

Estas son expresiones (¿recuerdas las matemáticas?):

1
6 * 7
a + b * 3
sin(3) + 7
a > b
a ? 1 : 0
func()
mystring + gimmeAString() + std::string("n")

Las siguientes son todas las declaraciones:

int x;                            // Also a declaration.
x = 0;                            // Also an assignment.
if(expr)  /*...*/               // This is why it's called an "if-statement".
for(expr; expr; expr)  /*...*/  // For-loop.

Una declaración generalmente se compone de una expresión:

if(a > b)           // a > b is an expr.
    while(true)     // true is an expr.
        func();     // func() is an expr.

Para comprender qué es una declaración de expresión, primero debe saber qué es una expresión y qué es una declaración.

Un expresión en un lenguaje de programación es una combinación de uno o más valores explícitos, constantes, variables, operadores y funciones que el lenguaje de programación interpreta (según sus reglas particulares de precedencia y asociación) y calcula para producir (“volver”, en un entorno con estado) otro valor. Este proceso, como para las expresiones matemáticas, se llama evaluación.

Fuente: https://en.wikipedia.org/wiki/Expression_(computer_science)

En otras palabras, las expresiones son una especie de elementos de datos. Pueden tener entidades únicas o múltiples como constantes y variables. Estas entidades pueden estar relacionadas o conectadas entre sí por operadores. Las expresiones pueden tener o no efectos secundarios, en el sentido de que evalúan algo por medio de la computación que cambia un estado. Por ejemplo, números, cosas que parecen fórmulas y cálculos matemáticos, asignaciones, llamadas a funciones, evaluaciones lógicas, cadenas y string todas las operaciones se consideran expresiones.

llamadas a funciones: Según MSDN, las llamadas a funciones se consideran expresiones. Una llamada a función es una expresión que pasa control y argumentos (si los hay) a una función y tiene la forma:
expression (expression-list opt) que es invocado por el ( ) operador de función.

fuente: https://msdn.microsoft.com/en-us/library/be6ftfba.aspx

Algunos ejemplos de expresiones son:

46
18 * 3 + 22 / 2
a = 4
b = a + 3
c = b * -2
abs(c)
b >= c
c
"a string"
str = "some string"
strcat(str, " some thing else")
str2 = "some string" + " some other string" // in C++11 using string library

Declaraciones son fragmentos de un programa que se ejecutan en secuencia y hacen que la computadora lleve a cabo alguna acción definida. Algunos tipos de instrucciones de C ++ son:

  • declaraciones de expresión;
  • declaraciones compuestas;
  • declaraciones de selección;
  • declaraciones de iteración;
  • declaraciones de salto;
  • declaraciones de declaración;
  • prueba bloques;
  • Bloques atómicos y sincronizados (TM TS).

Fuente: http://en.cppreference.com/w/cpp/language/statements

He leído generalmente declaraciones en c ++ que terminan con un semiconductor;

por lo general! Pero no siempre. Considere el siguiente fragmento de código, que es una declaración compuesta pero no termina con un punto y coma, sino que está encerrado entre dos llaves:

   // begining of a compound statement
    int x;    // A declaration statement
    int y;
    int z;
    x = 2;    // x = 2 is an expression, thus x = 2; with the trailing semicolon is an expression statement
    y = 2 * x + 5;
    if(y == 9)     // A control statement
        z = 52;
     else         // A branching statement of a control statement
        z = 0;
    
     // end of a compound statement

A estas alturas, como puede adivinar, una declaración de expresión es cualquier declaración que tenga una expresión seguida de un punto y coma. Según MSDN un declaración de expresión es una declaración que hace que se evalúen las expresiones. No se produce ninguna transferencia de control o iteración como resultado de una declaración de expresión.

Fuente: https://msdn.microsoft.com/en-us/library/s7ytfs2k.aspx

Algunos ejemplos de declaraciones de expresión:

x = 4;
y = x * x + 10;
radius = 5;
pi = 3.141593;
circumference = 2. * pi * radius;
area = pi * radius * radius;

Por lo tanto, las siguientes declaraciones no pueden considerarse declaraciones de expresión, ya que transfieren el flujo de control a otra parte de un programa llamando a una función:

printf("The control is passed to the printf function");
y = pow(x, 2);

efectos secundarios: Un efecto secundario se refiere a la modificación de un estado. Como cambiar el valor de una variable, escribir algunos datos en un disco que muestra un menú en la interfaz de usuario, etc.

Fuente: https://en.wikipedia.org/wiki/Side_effect_(computer_science)

Tenga en cuenta que las declaraciones de expresión no necesitan tener efectos secundarios. Es decir, no tienen que cambiar ni modificar ningún estado. Por ejemplo, si consideramos el flujo de control de un programa como un estado que podría modificarse, las siguientes declaraciones de expresión no tendrán ningún efecto secundario sobre el flujo de control del programa:

a = 8;
b = 10 + a;
k++;

Donde la siguiente declaración de expresión tendría un efecto secundario, ya que pasaría el flujo de control a la función sqrt (), cambiando así un estado:

d = sqrt(a);    // The control flow is passed to sqrt() function

Si también consideramos el valor de una variable como un estado, modificarlo sería un efecto secundario, por lo que todas las declaraciones de expresión anteriores tienen efectos secundarios, porque todas modifican un estado. Una declaración de expresión que no tenga ningún efecto secundario no es muy útil. Considere las siguientes declaraciones de expresión:

x = 7;  // This expression statement sets the value of x to 7
x;      // This expression statement is evaluated to 7 and does nothing useful 

En el ejemplo anterior x = 7; es una declaración de expresión útil para nosotros. Establece el valor de x en 7 por = el operador de asignación. Pero x; evalúa a 7 y no hace nada útil.

Si haces scroll puedes encontrar las ilustraciones de otros gestores de proyectos, tú aún eres capaz insertar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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