Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Como a coluna esta sendo apresentada?

Fiquei com duvidas sobre como a coluna esta sendo exibida se o professor esta exibindo somente um array da matriz, ou seja, em vez de usar mapa[i][j], ele esta usando somente mapa[i].
Onde as colunas estao sendo representadas exatamente?

1 resposta
solução!

Oi, Paulo.

Sua dúvida é muito comum quando começamos a trabalhar com matrizes de caracteres em C. Vamos entender como a linguagem lida com isso.

Quando você declara uma matriz como char mapa[5][11], você está criando 5 linhas, e cada uma dessas linhas é, na verdade, um array de 11 caracteres.

No C, uma string é tratada como um ponteiro para o primeiro caractere de um array. Por isso, quando usamos o código abaixo:

for(int i = 0; i < 5; i++) {
    printf("%s\n", mapa[i]);
}

O que acontece é o seguinte:

  1. O papel do %s: O formatador %s espera receber o endereço de memória onde começa uma sequência de caracteres. Ele imprime cada caractere a partir dali até encontrar o caractere nulo (\0), que indica o fim da string.
  2. A referência mapa[i]: Ao escrever apenas mapa[i] (com apenas um índice), você está acessando a linha inteira de uma vez. Para o compilador, mapa[i] é o endereço de memória onde começa a linha i.
  3. As colunas: Embora você não esteja usando um segundo índice como mapa[i][j], as colunas estão lá. O printf percorre todas as colunas daquela linha automaticamente por causa do %s. Ele começa na coluna 0 e vai "andando" pelas colunas 1, 2, 3... até terminar a frase.

Portanto, as colunas são representadas pelos caracteres individuais dentro de cada mapa[i]. Usar mapa[i] é uma forma simplificada de exibir o conteúdo completo daquela linha (ou seja, todas as suas colunas de uma vez) quando estamos trabalhando com textos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!