Variações para o Exemplo com Array
O código para chamar a função avg_of_double tem duas declarações que começam com o mesmo tipo de dado:
/* O array de valores para calcular a média. */
double nums_to_average[5];
/* A média, uma vez que a calculamos. */
double average;Em C, você pode combinar as duas, assim:
double nums_to_average[5], average;Isso declara nums_to_average para que cada um de seus elementos seja um double, e average para que seja simplesmente um double.
No entanto, embora você possa combiná-las, isso não significa que deva. Se for útil escrever comentários sobre as variáveis, e geralmente é, então é melhor manter as declarações em linhas separadas para que você possa colocar um comentário em cada uma. Isso também ajuda ao usar editores de texto para encontrar ocorrências de uma variável nos arquivos de código-fonte.
Definimos então todos os elementos do array nums_to_average com atribuições, mas é mais conveniente usar um inicializador na declaração:
{
/* O array de valores para calcular a média. */
double nums_to_average[]
= { 58.7, 5.1, 7.7, 105.2, -3.14159 };
/* A média, uma vez que a calculamos. */
double average = avg_of_double ((sizeof (nums_to_average)
/ sizeof (nums_to_average[0])),
nums_to_average);
/* …agora faça uso da média… */
}O inicializador do array é uma lista de valores separados por vírgulas, delimitados por chaves. Veja .
Note que a declaração não especifica um tamanho para nums_to_average, então o tamanho é determinado a partir do inicializador. Há cinco valores no inicializador, então nums_to_average recebe o comprimento 5. Se adicionarmos outro elemento ao inicializador, nums_to_average terá seis elementos.
Como o código calcula o número de elementos a partir do tamanho do array, usando sizeof, o programa operará em todos os elementos no inicializador, independentemente de quantos sejam.
Atualizado
Isto foi útil?