Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Programação C: Passando Endereços e Ponteiros para Funções – Guia Prático

Programação C: Passando Endereços e Ponteiros para Funções

Domine como passar endereços de memória e ponteiros para funções em C, com exemplos claros e explicações especializadas.

Em C, passar um endereço em vez de um valor permite que uma função manipule diretamente a variável original. Essa técnica, chamada passagem por ponteiro, é essencial para código eficiente e para modificar dados através de escopos.

Exemplo 1: Trocando Dois Inteiros por Referência

#include <stdio.h> void swap(int *n1, int *n2); int main(void) { int num1 = 5, num2 = 10; /* Passar os endereços de num1 e num2 */ swap(&num1, &num2); printf("num1 = %d\n", num1); printf("num2 = %d", num2); return 0; } void swap(int *n1, int *n2) { int temp = *n1; *n1 = *n2; *n2 = temp; } 

Executar este programa produz:

num1 = 10 num2 = 5

A função swap() recebe ponteiros n1 e n2 que apontam para as variáveis originais num1 e num2. Desreferenciando esses ponteiros (*n1 e *n2), a função troca os valores reais armazenados na memória, por isso main() vê os números atualizados. Observe que swap() retorna void porque modifica seus argumentos diretamente.

Exemplo 2: Incrementando um Valor via Ponteiro

#include <stdio.h> void addOne(int *ptr) { (*ptr)++; /* Incrementa o valor no endereço dado */ } int main(void) { int i = 10; int *p = &i; addOne(p); printf("%d", *p); /* Imprime 11 */ return 0; } 

Aqui, p mantém o endereço de i. A função addOne() recebe esse mesmo endereço, desreferencia e incrementa o valor subjacente. Após a chamada, *p (e consequentemente i) reflete o novo valor de 11.

Estes exemplos ilustram o poder da passagem por ponteiro: funções podem alterar variáveis definidas fora de seu escopo, permitindo manipulação eficiente de dados sem cópia desnecessária.

Linguagem C

  1. Entendendo Palavras-chave e Identificadores em C#: Regras, Listas e Boas Práticas
  2. Dominando Operadores Bitwise e Bit Shift em C#: Guia Abrangente
  3. Classes e Objetos em C#: Fundamentos para POO Robusta
  4. Dominando Classes e Métodos Abstratos em C#: Guia Prático
  5. Entendendo Classes e Métodos Parciais em C#
  6. Dominando Classes e Métodos Sealed em C#: Quando Usar, Exemplos Claros e Segurança de Código
  7. Como Passar Arrays 1D e 2D para Funções em C – Um Guia Prático
  8. Dominando Ponteiros em C: Um Tutorial Prático e Guiado por Especialistas
  9. Entendendo a Relação Entre Arrays e Ponteiros em C
  10. Dominando Structs e Ponteiros em C: Guia Prático