Ir ao conteúdo

C Recebendo vetor como parâmetro


Ir à solução Resolvido por V!OLADOR,

Posts recomendados

Postado

Qual a diferença entre:

 

Receber um vetor como ponteiro:

void printArray(int *array, unsigned size) {
	for (unsigned i = 0 ; i < size ; i++)
		printf("%d ", array[i]);
	puts("");
}

e receber um vetor dessa forma:

void printArray(int array[], unsigned size) {
	for (unsigned i = 0 ; i < size ; i++)
		printf("%d ", array[i]);
	puts("");
}

 

  • Obrigado 1
  • Solução
Postado

Tecnicamente não há diferença. De fato a notação com [] também significa receber um ponteiro que, no caso, aponta pro primeiro elemento (de muitos mais) ao invés de apenas um. O código fica mais descritivo e fácil de ler.

Mas há, talvez, uma situação na qual escrever usando o formato com [] seja efetivamente incorreto: quando o objeto em questão é opaco e portanto não é possivel criar um array, apenas ponteiros pra um elemento. Nestes casos o formato [] induz o compilador a um erro.

  • Curtir 2
  • Obrigado 2
Postado

As duas maneiras são equivalentes, mas note que em geral quando se usa ponteiros não se usa [] no acesso

 

Assim, quando se declara 

void printArraya(int*, unsigned);

Em geral se escreve

void printArraya(int* array, unsigned size)
{
    for(unsigned i = 0; i < size; i++)
        printf("%d ", *(array + i));
    printf("\n");
}

E quando se declara 

 void printArrayb(int[], unsigned);

Em geral se escreve

void printArrayb(int array[], unsigned size) {
    for (unsigned i = 0; i < size; i++)
        printf("%d ", array[i]);
    printf("\n");
}

A primeira notação é a mais comum em códigos de produção, não diretamente relacionados a matrizes, vetores ou algoritmos matemáticos. Em códigos como bancos de dados, drivers e utilitários, ao menos na proporção em que tenho visto essas coisas nos últimos tempos.

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...