Funções e passagem de parâmetros
Parâmetros são copiados por padrão; modificar o objeto exige acesso explícito.
O que é Funções e passagem de parâmetros?
Parâmetros são copiados por padrão; modificar o objeto exige acesso explícito.
Compare passagem por valor, ponteiros e referências.
Pontos importantes
- Ative os avisos do compilador e corrija todos.
- Conheça o tipo e o lifetime de cada valor.
- Valide entradas e limites de arrays.
Exemplos de código C e C++
main.c
#include <stdio.h>
void swap_ints(int *left, int *right) {
int temporary = *left;
*left = *right;
*right = temporary;
}
int main(void) {
int a = 4, b = 9;
swap_ints(&a, &b);
printf("%d %d\n", a, b);
return 0;
}
9 4
C++
main.cpp
#include <iostream>
void swap_ints(int& left, int& right) {
int temporary = left;
left = right;
right = temporary;
}
int main() {
int a = 4, b = 9;
swap_ints(a, b);
std::cout << a << ' ' << b << '\n';
}
9 4
Comparação entre C e C++
C passa endereço e o desreferencia. Referências C++ criam alias e const documenta leitura apenas.
C
C expõe APIs procedurais pequenas e detalhes de representação.
C++
C++ preserva o modelo de baixo nível e adiciona tipos mais seguros.
Exercícios práticos
Execute as duas versões e modifique-as para observar suas garantias.
- Adicione entradas inválidas e valores limite.
- Compile com -Wall -Wextra -Wpedantic.
- Separe declarações e implementação.