Título: Duda sobre el ambito de las variables automaticas Publicado por: Caster en 6 Octubre 2012, 12:30 pm el ambito de una variable una variable automatica puede ser menor que una funcion? una instruccion por ejemplo:
Código
Es decir, que el valor 5 para la variable solo valga para este bucle, no se si me explico, es que en el libro que estoy leyendo dice que si pero no da ningun ejemplo sobre como se puede utilizar de esta manera. Saludos Título: Re: Duda sobre el ambito de las variables automaticas Publicado por: overxfl0w13 en 6 Octubre 2012, 13:23 pm el ambito de una variable una variable automatica puede ser menor que una funcion? una instruccion por ejemplo: Código
Es decir, que el valor 5 para la variable solo valga para este bucle, no se si me explico, es que en el libro que estoy leyendo dice que si pero no da ningun ejemplo sobre como se puede utilizar de esta manera. Saludos http://c.conclase.net/curso/?cap=025 Ese modificador es aplicado por defecto si no se especifica ningún otro y si, es el correspondiente a todas las variables locales así que éstas desaparecen con la finalización del bloque. Título: Re: Duda sobre el ambito de las variables automaticas Publicado por: Caster en 6 Octubre 2012, 14:06 pm Y se podria utilizar otro?, asi por ejemplo:
Código
Título: Re: Duda sobre el ambito de las variables automaticas Publicado por: overxfl0w13 en 6 Octubre 2012, 15:03 pm Y se podria utilizar otro?, asi por ejemplo: Código
Claro, con static estarías "aumentando" el ámbito de la variable. Título: Re: Duda sobre el ambito de las variables automaticas Publicado por: Caster en 6 Octubre 2012, 15:13 pm Muchas gracias por responder :D
Saludos. Título: Re: Duda sobre el ambito de las variables automaticas Publicado por: rir3760 en 6 Octubre 2012, 18:00 pm el ambito de una variable una variable automatica puede ser menor que una funcion? una instruccion por ejemplo: Correcto. El ámbito o alcance de una variable declarada dentro un bloque inicia justo después de su declaración y continua hasta el termino de este (del bloque).Código
Es decir, que el valor 5 para la variable solo valga para este bucle Y se podria utilizar otro?, asi por ejemplo: No.Código
Primero porque en C99 y C11 es posible declarar variables locales a los bucles "for" pero solo pueden incluir los calificadores "register" y "auto", utilizar (como en tu caso) "static" no es valido. Segundo porque "static" no afecta el alcance de una variable sino su tipo de almacenamiento (en buen cristiano: la duración o "vida" de la variable): * Las variables automáticas se crean justo en su declaración y desaparecen al terminar su ámbito (el bloque al que pertenecen). * Las variables estáticas se crean, conceptualmente, justo antes de iniciar el programa y se inicializan con el valor indicado (si no existe su valor inicial es 0, 0.0 o NULL dependiendo del caso). Ellas desaparecen justo antes de terminar la aplicación. Un programa de ejemplo: Código
Y su salida es: Código: 100 Un saludo |