• Blog
  • Acerca
  • Autor
  • Contacto
  • Diferencias entre C y C++

    Me han estado llegando comentarios y correos con dudas, correcciones y todo tipo de insultos (no, eso último no) y decidí responder todos ellos con este post en el que aclararé lo que es C y lo que es C++ y sus diferencias.

    C fue creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.

    C++, por su parte, fue creado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos.

    Así que C es el lenguaje original, mientras que C++ es una ampliación de C, por eso el ++.

    A mi cuando me enseñaron a programar me dijeron que iba a aprender a programar en C++, pero en verdad me enseñaron únicamente C, así que muchos profesores en realidad no saben lo que es programar en C++. Veamos un hola mundo en los dos programas:

    En C

    1
    2
    3
    4
    5
    6
    7
    
    #include<stdio.h>  
     
    int main() 
    {
            printf ("Hola Mundo");
            return 0;
    }

    En C++

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    #include<iostream>
     
    using namespace std;
     
    int main()
    {
        cout << "Hola mundo";
        return 0; 
    }

    Para el tipo de programas que se estarán mostrando en este blog la diferencia más importante es la entrada y salida de datos. Así que veamos un ejemplo de entrada y salida de datos de cada programa:

    En C

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #include<stdio.h>
     
    int main()
    {
        int radio;
        float area, perimetro;
     
        // SALIDA: mensaje un pantalla
        printf("Introduce el radio del circulo: ");
     
        //ENTRADA: recibir dato desde teclado
        scanf("%d", &radio);
     
        // calculos
        area = 3.1416 * radio * radio;
        perimetro = 3.1416 * radio * 2;
     
        //SALIDA: resultado en pantalla
        printf("El area es %.2f y el perimetro %.2f", area, perimetro);
        getch();
     
        return 0;
    }

    En C++

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    #include<iostream>
    using namespace std;
     
    int main()
    {
        int radio;
        float area, perimetro;
     
        // SALIDA: mensaje un pantalla
        cout << "Introduce el radio del circulo: ";
     
        //ENTRADA: recibir dato desde teclado
        cin >> radio;
     
        // calculos
        area = 3.1416 * radio * radio;
        perimetro = 3.1416 * radio * 2;
     
        //SALIDA: resultado en pantalla
        cout << "El area es " << area << " y el perimetro " << perimetro;
        cin.get();cin.get();
     
        return 0;
    }

    Lo que noté al hacer estos dos programitas es que pedir un dato en C++ es mucho mucho más simple que en C. Sin embargo, el asunto de los << y >> puede llegar a ‘asustar’ a los recién iniciados en la programación.

    Pedir un dato en C

    scanf("modificador", &nombre de la variable);

    Pedir un dato en C++

    cin >> nombre de la variable;

    Mostrar un dato en C

    printf("Dato: modificador", nombre de la variable);

    Mostrar un dato en C++

    cout << "Dato: " << nombre de la variable;

    Los modificadores son los siguientes: %d para int, %f para float, %s para string, %c para char.

    Librerías en C++

    Por simple convención las librerías en C terminan en ‘.h’ (punto hache). Todas las librerías de C sirven para C++, sin embargo, también por convención, se elimina la terminación ‘.h’ y mejor se agrega ‘c’ al principio.

    Libreria en C      Librería en C++

    math.h                  cmath

    string.h                 cstring

    time.h                   ctime

    etcetera.

    El ‘namespace’

    C como lenguaje tiene un conjunto de palabras reservadas, como por ejemplo: if, for, while, int, float, … C++ es una ampliación, por lo tanto tiene que agregar nuevas palabras reservadas. Éstas palabras reservadas están en un ‘namespace’ (espacio de nombres). En específico cout y cin están el namespace std (standard).

    Si no declararamos que vamos a usar el namespace std (using namespace std;), cada vez que quisieramos usar cout, tendríamos que escribir std::cout.

    Espero que a partir de ahora pueden identificar si un programa está en C o en C++. También espero estar publicando mis programas en ambos lenguajes a partir de ahora.

    1. muchas gracias ahora se diferenciar entre c y c++
      una duda que me quedo es: cuando hacen la operacion del radio al final en c++ cuando muestra el resultado se utilisa “cin.get();” para mostrar el resultado en la consola, pero porque usas dos veces el “cin.get();cin.get();”? no seria lo mismo con una sola vez?
      gracias.

    2. MIGUEL dice:

      Hola soy nuevo y novato en este lenguaje C y C++ pero segun las explicaciones leidas comenzare de nuevo a pasarme de c a c++ yo lleve basic en la universidad y realmente no fui muy bueno en programar pero hoy necesito aprender lenguaje en C ya que me servirá para enseñarle a mi sobrino que lleva bachillerato y no le gusta mucho, ademas hacerle entender que todo bien aprendido sirve en cualquier momento en la vida.

    3. Estiwen dice:

      ps si quieres practica desde el principio yo estoy aprendiendo de esta web y de wikibooks y voy bien.
      http://codigoc.org/662-curso-de-c
      http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B
      te dejo mi correo y compartimos codigos ^^
      taku@hotmail.es

    4. Luis chavaque dice:

      hola gracias por la info

    Hola, escribe aquí tu comentario: