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 usados na declaração de parâmetros como visto na sintaxe a seguir:

Sintaxe
void 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. Prefixado com *
Exemplo 1
//protótipos
int funcao(int *var);
double funcao(double *var);
float funcao(float *var);
char funcao(char *var);

Para informar o endereço de uma função como argumento para segundo função, utilizamos o operador & que é prefixado ao argumento como pode ser visto na sintaxe a logo abaixo:

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 assunto que passagem por refêrencia que pode ser visto em C Funções: Passagem por referência.

Da mesma forma que retornamos um tipo de dados primitivo ou do usuário em um função, é possível a retornar o tipo de dado ponteiro. A diferença é o uso do operador * como prefixo do tipo de dado de retorno no protótipo da função que indica o retorno de um ponteiro:

Sintaxe
tipo_dado_retorno *nome_funcao( <lista_parametros> );
Onde
<lista_parametros>: lista de parâmetros. Não obrigatórios.
tipo_dado_retorno: tipo de dado do ponteiro para retorno.
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. 01/07/2026 - revisão 5 - Ajustes: pontuais
  2. 04/09/2025 - revisão 4 - Ajustes: pontuais, objetivos e sintaxes
  3. 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
  4. 07/10/2024 - revisão 2 - Correção: link 'Anterior'; ajustes pontuais
  5. 02/10/2023 - revisão 1 - Correção em referências, erros gramaticais e sintaxe
  6. 19/05/2023 - versão inicial