Ir ao conteúdo
  • Cadastre-se

C Recebendo vetor como parâmetro


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

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

  • Solução

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!