Aula 09 - C e C++: Baixo Nível e Performance 🧱
Objetivo
Objetivo: Entender o que acontece "por baixo do capô". C e C++ te dão controle total sobre a memória do computador.
1. Linguagem C: O Pai das Linguagens Modernas 👴
Criada em 1972, quase tudo que você usa hoje (Windows, Linux, Android) tem C no núcleo. É uma linguagem Estruturada e Compilada.
A Estrutura Básica
Anatomia do Código 🦴
| Parte | O que faz? |
|---|---|
#include <stdio.h> |
Traz ferramentas de Entrada/Saída (printf). É como pegar a caixa de ferramentas. |
int main() { ... } |
O Ponto de Partida. Todo programa C começa aqui. |
printf(...) |
Imprime na tela. (Print Formatted). |
return 0; |
Diz ao sistema operacional: "Terminei sem erros!". |
Visualizando a Memória (Stack vs Heap)
Em C, você gerencia onde os dados ficam.
graph TD;
subgraph RAM
Stack["Stack (Pilha)"] --- V["Variáveis Locais\nRápidas"];
Heap["Heap (Monte)"] --- D["Dados Dinâmicos\nLentos"];
end
style Stack fill:#f9f;
style Heap fill:#bbf;
Simulando Compilação (Termynal)
2. Ponteiros: O Superpoder (e o Perigo) ⚡
Um ponteiro não guarda um valor (como 10), ele guarda o Endereço da Memória onde o 10 está.
Warning
Ponteiros errados podem travar o sistema (o famoso "Segmentation Fault").
3. C++: Adicionando Objetos 🚀
C++ mantém a velocidade do C, mas adiciona Classes e Objetos para organizar códigos gigantes.
Classes e Objetos
#include <iostream>
using namespace std;
class Carro {
public:
string marca;
void buziar() {
cout << "Bi Bi!" << endl;
}
};
int main() {
Carro meuCarro;
meuCarro.marca = "Ferrari";
meuCarro.buziar();
return 0;
}
Compilando C++ (Termynal)
4. Mini-Projeto: Gerenciador de Registros em C 🚀
C te permite ver como os dados são organizados no nível mais baixo.
Desafio do Projeto
Crie um programa em C que use uma struct (estrutura) chamada Aluno com os campos id (inteiro) e media (float).
1. Peça para o usuário digitar os dados de um aluno.
2. Mostre os dados na tela.
3. Use um ponteiro para alterar a média do aluno através de uma função atualizarMedia().
5. Exercícios de Fixação 📝
- Fácil: Escreva um programa em C que leia a idade e mostre se é maior de idade.
- Médio (C++): Crie uma classe
Retangulocom atributoslarguraealturae um métodocalcularArea(). - Desafio (Ponteiros): Crie duas variáveis
aeb. Use uma funçãotrocar(&a, &b)que receba ponteiros e troque os valores das variáveis originais. ??? tip "Dica: Operador " Use*ppara acessar o VALOR* que o ponteiro aponta.temp = *p1;
Próxima Aula: Vamos sair da "tela preta" e ir para a Web! JavaScript e TypeScript.