uso de llaves para poder declarar variables del mismo nombre

Iniciado por david_BS, 31 Marzo 2012, 17:43 PM

0 Miembros y 1 Visitante están viendo este tema.

david_BS


Esto es algo que muchos iniciados no saben, y es que las llaves de c/c++ son para marcar ámbitos, por ejemplo el ámbito de una función es lo que está dentro de sus llaves.

por ejemplo, si quisiera crear dos FOR que utilicen una misma variable llamada 'i', y quiero declararla dos veces, esto normalmente no se puede hacer dentro de una función, pero si lo hacemos dentro de otro ámbito separado por llaves es posible.


void Funcion_Dummy()
{
      {
           for(int i=0; i<5; i++)
           {
           }
      }

      /* vuelvo a declarar 'i' pero dentro de otro ámbito de llaves */

      {
            for(int i=0; i<5; i++)
           {
           }
      }
}


parece ser un pequeño truquillo, pero es muy útil si les gusta usar los mismos nombres de variables, por ejemplo en los FOR siempre nos gusta usar i,j,k, etc
La consigna es tener consciencia del ámbito en el que estamos.

Que estén bien ;-D




jhonatanAsm

podría ser posible esto:

{
int i=0;
       void as(){
i+=2;
                     }
}

{
String i="asd";
if(i.equals("asd") )
Sys,....print(":p");

}

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

zonahurbana

Acabo de escribir, compilar y ejecutar lo siguiente en Code::Blocks.

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main()
{
    for(int i=0; i<3; i++)
        cout<<i<<endl;
    // cout<<i<<endl; No es posible !
    for(int i=0; i<3; i++)
        cout<<i<<endl;
    return 0;
}


En este caso no es necesario usar las llaves para determinar el alcance de las variables i; porque como cada i es declarada y definida dentro de un for, sólo existen dentro de este bucle (sólo para sus iteraciones).
He comentado una línea entre los FOR. Lo que indica que entre ellos no podemos imprimir en pantalla la variable i porque no existe.
Para que las llaves determinen el ámbito de la variable i tendría que declararse antes de cada for, y encerrados entre llaves estarían dicha definición de variable y el bucle.
Nunca dejar de aprender es importante, más allá del ritmo que se siga ...