Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Declaración avanzada de variables

13/16
Recursos

Aportes 12

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Para aquellos a los que no le haya quedado claro qué es una variable y cual es la sintaxis correcta para declararla en C, les comparto esta breve explicación:

Una variable es un espacio de memoria reservado (en RAM), cuyo tamaño depende del tipo de dato que se quiere almacenar. A dicho espacio reservado podemos asignarle un nombre, para referirnos mucho más fácil a la dirección de memoria donde se encuentra, o al valor que almacena. Los datos contenidos en una variable, al estar cargados en la memoria RAM, desaparecerán una vez el computador se apague.

Debido a que C es un lenguaje fuertemente tipado, es necesario declarar el tipo de datos que va a contener una variable desde el momento de la declaración. La sintaxis (forma correcta de escribir en un lenguaje) para declarar una variable en C es la siguiente

char letra;

donde char representa el tipo de datos (caracter), letra es el nombre que le asignamos a la variable, y el ; representa el final de la instrucción. En este ejemplo, hemos reservado 1 byte para almacenar nuestros datos, sin embargo, no se le ha asignado ningún valor aún. Si quisiéramos declarar una variable e inmediatamente guardar un dato en ella podríamos hacerlo usando la sintaxis:

char letra='a';

a será el valor que almacena la variable, y se encuentra entre comillas sencillas para indicar que es un caracter.

Finalmente cabe aclarar que podemos asignar cualquier nombre a una variable, teniendo en cuenta estas restricciones:

  1. No debe empezar por un número
  2. No debe ser igual a una palabra reservada del sistema, es decir, palabras definidas previamente por el lenguaje para ejecutar acciones especiales
  3. Deben ser significativos, es decir, que describan claramente lo que están almacenando. Ej. Para almacenar la cantidad de estudiantes de un curso, podriamos llamar a la variable alumnos

Espero a alguien le sirva.

Me quedé loco cuando vi el doble int y volví a la clase pasada a ver si me salté algo jajaja ke kreysi

<h3>Variables en el lenguaje C</h3>

Una variable es el nombre que le damos a un espacio en memoria para poder almacenar información de un tipo especifico y esto va a determinar el tamaño y estructura del espacio que estamos reservando en memoria.

#include <stdio.h>

// Variable declaration
int i, j, k;
unsigned int minutes;

// Variable initialization
extern float captation = 0.13;
char y = 'y';
unsigned char dailyWorkHours = 8;

int main()
{
    // Variable definition
    int i, j, k;

    i = 5;
    j = 4294967295;
    k = i + j;
    printf("Sum value: %d", k);

    return 0;
}

Con el comando extern indicamos que una variable la utilizaremos en archivos externos de donde la estamos declarando. Muy útil cuando tenemos multiples archivos de C en un proyecto y una buena práctica también. Indicamos la definición de varables internas donde la vamos a utilizar como en una función por ejemplo.

Es muy importante saber que al exceder el rango de valores se desborda la memoria y el número empieza a contar desde el primer número del rango inferior de nuevo. Post sobre desbordamiento de memoria

Los placeholders o marcadores de posición son etiquetas que le indican al compilador, lo que debe imprimir en el lugar donde se encuentra la etiqueta.
Para incluir varios placeholders en una misma instrucción printf, solo es necesario ponerlos en la posición en la que se desea reemplazar la etiqueta, y luego poner las variables que serán reemplazadas en el mismo orden en el que se pusieron las etiquetas.

Existen varios placeholders que podemos usar.

<h4>Formato de escritura de variables</h4>

| Formato | Explicación |
| %u | Escribe enteros sin signo de 2 bytes (unsigned in) |
| %d %i | Escribe enteros de 2 bytes (int) |
| %ld | Escribe enteros de largo alcance (long) |
| %f | Escribe reales de 4 bytes (float) |
| %lf | Escribe reales de doble precisión de 8 bytes (double) |
| %e %E | Escribe el forma exponencial |
| %g | Despliega un valor en punto flotante %f o en la notación exponencial %e (o %E) |
| %c | Escribe un caracter de un byte (char) |
| %s | Escribe una cadena de caracteres, que terminan con \0 |

Si despues de convertir el valor a notación exponencial, el exponente del valor es menor a -4 o es mayor o igual a la precisión especificada usará %e o %E (por omisión en el caso de %g o %G, 6 dígitos significativos). De lo contrario se utilizará %f.

cuál es la diferencia entre un decimal y un flotante?

Y comienzan los fallos de seguridad jajajaja bendito sea c

#include <stdio.h>

//Variable Declarations
extern int a, b, c;

float f, g, h;

int main ()
{
    //Variable definition
    int a, b, c;
    //Variable inicialization
    g = 1000.999999;
    f = 1.111111;

    h = g + f;
    printf("Value of sum is: %f" , h);
    return 0;
}```

Declaración avanzada de variables:) Como vas a manejar variables cuando estes trabajando con diferentes archivos??? variable.c #include <stdio.h> //Variable Declaration extern int a, b, c; float f, g, h; int main() { // Variable definition int a, b, c; //Variable Initialization a = 1000.99999999999; b = 1.1111111111; h = g + f; printf("Value of sum is: %d", c) return 0; } El codigo no te va a decir si hay un error y es que esa es la parte rara de C, es que C no te va a decir oye todo esta mal porque declaraste estas variables y se desborda y estas perdiendo informacion. El lenguaje C se hizo en los 70's

Que genial, básicamente vi mucho tiempo c++ pero jamás me explicaron esta parte y al momento de hacer grandes programas y puede ser un dolor de cabeza.

Buenas peña.
 
¿Es usado mucho el tema de extern? Defines unas variables así, las puedes usar en otros archivos que formen parte del proyecto, pero tienes que definir las variables, ya sin el extern incluso en el mismo archivo principal, o función main, por buscarlo alguna analogía, es como el “public” que conocemos de otros lenguajes, pero no tan "vitaminado.
 
Un saludo y gracias.

👌

Hubiese preferido este juego con las variables, al inicio. Creo que hubiese quedado mejor.

Gracias!