C é a base para C++. Embora C++ seja mais amplamente usado para aplicativos e jogos de desktop, é uma excelente opção para começar com C, especialmente se você for novo no mundo do software. Leia para saber o porquê.
O que é C?
C é uma linguagem de programação estrutural de alto nível. Programas escritos em C são portáveis. C ainda é uma das principais linguagens de programação hoje porque é robusta. É usado para programas complexos como sistemas embarcados, drivers, kernels, aplicativos de sistema, sistemas operacionais como o Microsoft Windows, AppleOS X, bancos de dados como MySQL e alguns aplicativos de IoT.
C é uma linguagem compilada, fornecendo assim uma camada de abstração entre o código de máquina e o programa.
Um programa C simples para somar dois números ficará assim.
#include<stdio.h>
int main()
{
int a, b, sum;
printf("Enter two numbers to add: ");
scanf("%d%d", &a, &b);
sum = a + b;
printf("nSum of %d and %d is %d", a, b, sum);
return 0;
}
Aqui está a saída:
Os programas em C incluem stdio.h – o st umd ard eu nput o utput.
O STDIO fornece funções básicas de entrada e saída, como printf e scanf. printf é usado para imprimir algo (mensagem, saída) no console, enquanto scanf é usado para obter entradas do console. Estamos usando %d para indicar que os números são inteiros.
Se você fornecer decimais, obterá algumas respostas estranhas. Para evitar isso, você pode usar %f. O main()
function é a primeira função que é executada quando o programa é executado. A sintaxe é muito simples – declare os tipos de variáveis e então use-os.
O que é C++?
C++ é baseado em princípios de programação orientada a objetos como abstração, polimorfismo, herança e encapsulamento. Você pode pensar em C++ como uma extensão de C com o conceito de classes e objetos.
Ter objetos para armazenar dados deu uma estrutura organizada aos programas. Por exemplo, se você deseja armazenar detalhes de um aluno, pode criar uma classe Aluno e criar atributos como nome, idade, hobbies, notas etc., na classe. Você pode criar um objeto de aluno real sempre que necessário!
class Student {
public:
char name(20);
int age;
float marks;
};
//This will create an object
Student student1 = new Student();
Na realidade, o objeto será criado e a memória alocada apenas durante o tempo de execução.
C++ oferece alto desempenho, e é por isso que é a escolha mais popular até hoje para desenvolver mecanismos de jogo de alto desempenho, sistemas embarcados, navegadores, compiladores e aplicativos baseados em gráficos como processamento de imagem .
Poucos bancos de dados como o MongoDB são escritos em C++. Assim como C, C++ é portátil.
Vamos escrever nosso programa de adição anterior em C++ – observe as diferentes funções.
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Enter the numbers: ";
cin >> a >> b;
int sum = a + b;
cout << a << " + " << b << " = " << sum;
return 0;
}
Note que estamos usando cout e cin em vez de printf e scanf. Além disso, as declarações de tipo podem ser feitas em qualquer lugar do programa antes que a variável seja usada (por exemplo, a soma da variável). A declaração de impressão é bastante simples com apenas os nomes das variáveis. Observe que estamos usando o namespace std do cabeçalho iostream. std tem os métodos como cout, in, e muitos mais.
Semelhanças entre C e C++
Você pode dizer que C é um subconjunto de C++. Existem muitas semelhanças entre C e C++, seja na maneira como os programas são escritos ou nos aplicativos para os quais são usados. Ambos são robustos, portáteis e de alto desempenho. Algumas semelhanças importantes são:
Sno. | Recurso | Explicação |
1. | Sintaxe | Ambos têm a mesma sintaxe, por exemplo, declaração de variável, ponto e vírgula de fim de linha, convenções de nomenclatura, etc. |
2. | Estrutural e processual | Cada linha de código é executada uma a uma. Os programas são estruturados da seguinte forma – primeiro as importações, depois as declarações de variáveis e, por fim, o código principal. |
3. | Função principal | Todo o código que precisa ser executado deve estar dentro da função main(). main() é a primeira chamada de função durante a execução do programa. |
4. | ponteiros | Tanto C quanto C++ usam ponteiros da mesma maneira. Um ponteiro é uma variável que armazena o endereço de memória de outra variável. Por exemplo, int a = 1;. Assim que esse código for executado, uma memória (digamos, XX0011) será alocada para a. A localização de memória de ‘a’ pode ser acessada usando o e comercial (&) como int ptr_a = &a; |
5. | Palavras-chave e operadores | Todas as palavras-chave e operadores presentes em C também são válidos para C++. Por exemplo, scope, static, public, int, etc. C++ também tem operadores e palavras-chave adicionais. |
Diferenças entre C e C++
C++ foi criado para superar algumas das deficiências de C e é um superconjunto de C. Portanto, qualquer programa escrito em C funcionará em C++ – mas não vice-versa! A principal diferença entre C e C++ é que C++ é baseado em princípios orientados a objetos (OOP) de programação. Além disso, há mais ênfase na verificação de tipo em C++. Existem também algumas diferenças mais sutis, conforme listado abaixo:
C | C++ |
Foi desenvolvido entre 1969-1973 por Dennis Ritchie nos laboratórios da AT&T Bell | Desenvolvido por Bjarne Stroustrup em 1979. |
Não segue os princípios de programação orientada a objetos | Baseado nos conceitos OOPS, como encapsulamento, polimorfismo e herança |
C contém um total de 32 palavras-chave como char, switch, int, static, union e outros | Todas as palavras-chave C são válidas em C++ e 31 palavras-chave adicionais também estão presentes. |
Suporta apenas programação processual | C++ suporta múltiplos paradigmas de programação, como OOP, programação genérica e funcional |
Não podemos implementar recursos de OOP em C. | Recursos como amigos, funções virtuais em C++ aprimoram a essência do OOP. |
C suporta tipos de dados embutidos. | O C++ oferece suporte a tipos de dados integrados e definidos pelo usuário por meio do conceito de classes |
Há provisão para sobrecarga de operador ou função | C++ suporta sobrecarga de operador e função (polimorfismo) |
A alocação de memória é feita através das funções malloc() e calloc(), e a desalocação usando free() | A alocação de memória acontece usando novo operador e desalocação usando excluir operador |
C não suporta manipulação de exceção | Suporta tratamento de exceção |
Concentra-se no procedimento ou método mais do que nos dados | Mais focado em dados |
Algumas outras características importantes presentes apenas em C++ são:
- Usando namespace palavra-chave, podemos criar variáveis com o mesmo nome em diferentes namespaces.
- Podemos usar funções dentro de uma estrutura. As estruturas também podem ter modificadores de acesso.
- Suporta variáveis de referência.
Quando usar C ou C++
Este é um debate muito comum entre os programadores – por que devo aprender C quando posso fazer tudo em C++?
Aprender C fornecerá uma base sólida em estruturas de dados, ponteiros, palavras-chave, conceitos de pilha, heap e alocação de memória.
Além disso, C ainda é amplamente utilizado para aplicativos de alto desempenho, pois o compilador C é mais rápido que o compilador C++. Então, se você quiser escrever trechos de código que não requeiram objetos e classes, funções virtuais ou modelos, vá para C porque C++ pode ser um exagero com suas extensas bibliotecas.
A maior parte da codificação de baixo nível, como kernels, sistemas operacionais e bancos de dados, ainda é mantida em C, portanto, conhecer C também ajudará você a aprender C++ mais rapidamente.
C++ é considerada uma das linguagens mais rápidas e eficientes – e é por isso que ainda é uma das principais linguagens de programação, especialmente para aplicações de alto desempenho como game engines, Dispositivos IoT e aplicativos de desktop. Muitos aplicativos usam uma combinação de código C e C++ – para obter desempenho ideal e o benefício da programação orientada a objetos.
Resumo
Neste artigo, aprendemos o básico de C e C++ com um programa de exemplo simples. Discutimos as principais diferenças e semelhanças entre os dois idiomas e quando usar cada um.
Se você está apenas começando sua jornada de desenvolvimento de software, começar com C lhe dará um impulso de confiança, pois é fácil e abrange todos os conceitos de programação, como estruturas de dados, ponteiros, memória e assim por diante.
Você pode estar interessado em usar o Tecnologico online Compilador C e Compilador C++ .