Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Entender ponteiro como parâmetro/argumento
  2. Entender retorno de ponteiro

O uso de um ponteiro como parâmetro de uma função é feito de forma semelhante ao que já foi estudado anteriormente em relação a outros tipos de dados usados na declaração de parâmetros.

Sintaxe
tipo_retorno nome_funcao( tipo_dado *nome_parametro1, tipo_dado *nome_parametroN); 
Onde
tipo_retorno: tipo de retorno da função.
nome_funcao: nome da função desejada.
nome_parametro1..N: ponteiros como parametro. Prefixados com *
Exemplo 1
int funcao(int *var);
double funcao(double *var);
float funcao(float *var);
char funcao(char *var);

Para passarmos o endereço de uma variável como argumento para uma função, utilizamos o operador &:

Sintaxe
nome_funcao( &nome_parametro1, &nome_parametro2, &nome_parametro1); 
Exemplo 2
#include <stdio.h>

void funcao(int *parametro)
{
    *parametro = 100;
}

int main ()
{
    int var=99;
    printf("%d \n",var);
    funcao(&var); //altera o conteúdo da variável.
    printf("%d \n",var);
}
Saída
99
100

No exemplo acima, abordamos o que foi discutido em C Funções: Passagem por referência.

Da mesma forma que podemos retornar um tipo de dados em um função, é possível a mesma ideia com o tipo de dado ponteiro. A diferença é que precisamos utilizar o operador * como prefixo do tipo de dado de retorno no protótipo da função para indicar que um ponteiro está sendo retornado:

Sintaxe
tipo_retorno *nome_funcao(lista_parametros);
tipo_retorno* nome_funcao(list_parametros);
Onde
lista_parametros: lista de argumentos. Não obrigatórios.
tipo_retorno: tipo de retorno da função.
nome_funcao: nome da função desejada.
Exemplo 3
#include <stdio.h>
int *funcao(int parametro)
{
    int var = parametro;
    int *pnt = &var;
    return pnt;
}

int main ()
{
    int *pnt = funcao(99);
    printf("%d \n", *pnt);
    (*pnt)++; //100
    printf("%d \n", *pnt);
}
Saída
99
100
  1. 11/03/2025 - revisão 3 - Remoção de info. duplicada em tópico 2; Adição de Incremento em Ex. 3; Correções pontuais
  2. 07/10/2024 - revisão 2 - Correção: link 'Anterior'; ajustes pontuais
  3. 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais e sintaxe
  4. 19/05/2023 - versão inicial