Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: david_BS en 31 Marzo 2012, 17:43 pm



Título: uso de llaves para poder declarar variables del mismo nombre
Publicado por: david_BS en 31 Marzo 2012, 17:43 pm

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.

Código:
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





Título: Re: uso de llaves para poder declarar variables del mismo nombre
Publicado por: jhonatanAsm en 30 Diciembre 2012, 23:11 pm
podría ser posible esto:

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

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

}



Título: Re: uso de llaves para poder declarar variables del mismo nombre
Publicado por: zonahurbana en 31 Diciembre 2012, 16:16 pm
Acabo de escribir, compilar y ejecutar lo siguiente en Code::Blocks.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6.    for(int i=0; i<3; i++)
  7.        cout<<i<<endl;
  8.    // cout<<i<<endl; No es posible !
  9.    for(int i=0; i<3; i++)
  10.        cout<<i<<endl;
  11.    return 0;
  12. }

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.