Prepare-se para uma aventura repleta de colchetes!
int numeros[5]; // Declarando um array de 5 inteiros
int pontuacoes[] = {100, 200, 300, 400, 500}; // Pontuações em um jogo
// Array multidimensional para um tabuleiro de jogo
int tabuleiro[3][3] = {{0, 1, 0}, {1, 0, 1}, {0, 1, 0}};
Arrays: porque lidar com uma variável por vez é coisa do passado!
int notas[] = {85, 90, 78, 92, 88};
// Notas dos testes: tentando manter a média alta para impressionar!
cout << "Primeira nota: " << notas[0] << endl; // 85
cout << "Última nota: " << notas[4] << endl; // 88
// Cuidado: acessar notas[5] é como tentar encontrar
// uma agulha num palheiro digital! (E pode causar um crash!)
Lembre-se: em C++, contamos a partir do zero. Por que será que começamos do zero? Porque zero é o novo um!
sizeof
int numeros[] = {10, 20, 30, 40, 50};
// Tamanho total do array em bytes
size_t tamanhoTotal = sizeof(numeros);
// Tamanho de um elemento do array em bytes
size_t tamanhoElemento = sizeof(numeros[0]);
// Número de elementos no array
size_t numeroElementos = tamanhoTotal / tamanhoElemento;
cout << "O array tem " << numeroElementos << " elementos." << endl;
Dica: Pense no sizeof como uma régua que mede o espaço que seu array ocupa na memória!
sizeof: Dicas e Armadilhassizeof(array) retorna o tamanho total em bytessizeof(array) / sizeof(array[0]) dá o número de elementossizeof não funciona como esperado com arrays passados como parâmetros de função!
void funcaoTraicoeira(int arr[]) {
// Isso NÃO dá o tamanho do array!
size_t tamanho = sizeof(arr) / sizeof(arr[0]);
// arr decai para um ponteiro aqui
}
sizeof em funções: onde os corajosos programadores C++ vão para se aventurar!
int temperaturas[] = {22, 24, 19, 25, 23, 20, 18};
int tamanho = sizeof(temperaturas) / sizeof(temperaturas[0]);
for (int i = 0; i < tamanho; i++) {
cout << "Dia " << i+1 << ": " << temperaturas[i] << "°C" << endl;
}
// Para os aventureiros: range-based for loop
for (int temp : temperaturas) {
cout << temp << "°C ";
}
Iteração: porque às vezes é preciso passar por todos os elementos para achar a resposta... ou a saída!
Uma introdução às técnicas e conceitos fundamentais.
Por que passar arrays para funções?
void minhaFuncao(int arr[], int tamanho) {
// Código para manipular o array
}
int main() {
int meuArray[5] = {1, 2, 3, 4, 5};
minhaFuncao(meuArray, 5);
return 0;
}
O array é passado por referência automaticamente!
// Estas declarações são equivalentes:
void func1(int arr[], int tamanho);
void func2(int* arr, int tamanho);
Ambas as formas são comumente usadas e aceitáveis
void dobrarElementos(int arr[], int tamanho) {
for (int i = 0; i < tamanho; i++) {
arr[i] *= 2;
}
}
As modificações afetam o array original!
#include
int somaArray(const int arr[], int tamanho) {
int soma = 0;
for (int i = 0; i < tamanho; i++) {
soma += arr[i];
}
return soma;
}
int main() {
int numeros[] = {1, 2, 3, 4, 5};
int resultado = somaArray(numeros, 5);
std::cout << "A soma é: " << resultado << std::endl;
return 0;
}
Tente você mesmo: escreva uma função que calcula a média dos valores em um array!
| Valor a buscar: | 5 |
| Temp |
constLembre-se: com grandes arrays vêm grandes responsabilidades!