14- Programación en C - Variables de tipo puntero I

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 13

  • @pabloarieldelprado651
    @pabloarieldelprado651 2 роки тому +2

    Me gustó que esté explicado breve y detalladamente.

  • @JavierGomez-yh6zb
    @JavierGomez-yh6zb 2 роки тому +1

    Una genialidad que bien explicado Felicitaciones y MUCHAS GRACIAS por tanto aporte!!!!!

  • @lq6949
    @lq6949 2 роки тому +1

    Facu, gracias por tu aporte al conocimiento.

  • @bearose710
    @bearose710 Рік тому

    Muy buena explicación de punteros.

  • @Djoako22
    @Djoako22 3 роки тому +2

    Muchas gracias hermano al fin lo entendí bien

    • @stickmanx9918
      @stickmanx9918 3 роки тому +1

      Sii lo explico re bien el pibe, es un tema medio confuso de entender
      me tuve que tomar 1 de omega 3 para entenderlo al toke

  • @fredyalonso6417
    @fredyalonso6417 3 роки тому

    Gracias.

  • @andresmauricionieveschacon5458

    Buena tarde, no seria ptro = &num ? y no *ptro = &num?... y luego, si se quiere mostrar el valor de num a través de su dirección con el puntero, entonces mostramos printf("%d
    ", *ptro).

    • @facudarfe
      @facudarfe  Рік тому +1

      Muy buena observación. Quizas el ejemplo que di no es muy acertado. Lo que pasa es que yo le estoy asignando el valor al mismo tiempo que estoy declarando la variable, el * en ese contexto quiere decir que estoy declarando una variable puntero, en cambio cuando se usa el * delante de la variable en otro contexto ahi hace referencia a la indireccion y es asi como vos decis.

    • @andresmauricionieveschacon5458
      @andresmauricionieveschacon5458 Рік тому

      Sino que me quedé pensando porque el * lo que hace es acceder al valor contenido en la dirección de num, por tanto, cuando se declara que *ptro = &num, estaríamos diciendo que a *ptro se le asigna la dirección de num y no el valor contenido en esa dirección.

    • @facudarfe
      @facudarfe  Рік тому

      Si pero en el contexto de una declaracion de la variable, el * tiene otro significado como te habia dicho, que es el de indicar que estamos en presencia de una variable puntero. Recordá que la parte de declaraciones de variables es antes a que se ejecuten las instrucciones de C.
      int *ptro = &num es distinto de *ptro = &num. Una es una declaracion de variable y al mismo tiempo inicializacion y la otra es una asignación. En la segunda es efectivamente una indireccion. Son cuestiones de C que a veces hacen dificil entender los punteros.

  • @ivanvaldiviam7428
    @ivanvaldiviam7428 3 роки тому

    Todo lo que se quiere es actualizar desde la funcion, el arreglo de caracteres en main() enviado por referencia. Estoy bloqueado, agradecere tu ayuda...

  • @ivanvaldiviam7428
    @ivanvaldiviam7428 3 роки тому

    #include
    #include
    #include
    #include
    #include
    // Conversion de Double a String, Paso por Referencia a Funcion de Arreglo de Caracteres
    int main()
    {
    char fstr[15]={0},*ss;
    int fDMSTR();
    double angNUM=-76.51675;

    // Puntero a Cadena
    ss=fstr;

    // Llamada a funcion y paso por Referencia
    fDMSTR(angNUM,ss);

    // Contenido Puntero Remoto Actualizado desde funcion en Main(ahora angSTR)
    printf("
    Contenido de Puntero ss (String value) = %s
    ",ss);

    return 0;
    }
    /*Convierte Double a String*/
    int fDMSTR(double angDEG, char *pp)
    {
    char angSTR[15]={0},*hh;
    float angTXT;

    // Asignacion Double a Float
    angTXT=angDEG;

    // Mostrando Double a Float
    printf("
    Double (%lf) to Float (%f)
    ",angDEG,angTXT);
    // Puntero Local apunta a Puntero Remoto
    hh=pp;

    // Conversion Float to String
    sprintf(angSTR,"%.5f",angDEG);

    // Mostrando Float to String
    printf("
    Float (%f) to String (%s)
    ",angTXT,angSTR);

    // Actualizacion de Puntero Remoto con valor convertido
    hh=angSTR;

    // Visualizacion Contenido Puntero Remoto Actualizado, desde Funcion (ahora angSTR)
    printf("
    Contenido de Puntero hh (String value) = %s
    ",hh);

    return 0;
    }