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

  1. Ponteiro como parâmetro/argumento
  2. Retornando ponteiro

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

Sintaxe
tipo_retorno nome_funcao( tipo_dado *nome_param); 
Onde
tipo_retorno: tipo de retorno da função.
nome_funcao: nome da função desejada.
*nome_param: ponteiros como parametro. Prefixados com *
Exemplo 1
//protótipos
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_parametroN ); 
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( <lista_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. 04/09/2025 - revisão 4 - Ajustes: pontuais, objetivos e sintaxes
  2. 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
  3. 07/10/2024 - revisão 2 - Correção: link 'Anterior'; ajustes pontuais
  4. 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais e sintaxe
  5. 19/05/2023 - versão inicial