Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C Pass Alamat dan Pointer

Alamat dan Pointer Pass C

Dalam tutorial ini, Anda akan belajar meneruskan alamat dan pointer sebagai argumen ke fungsi dengan bantuan contoh.

Dalam pemrograman C, juga dimungkinkan untuk melewatkan alamat sebagai argumen ke fungsi.

Untuk menerima alamat ini dalam definisi fungsi, kita dapat menggunakan pointer. Itu karena pointer digunakan untuk menyimpan alamat. Mari kita ambil contoh:


Contoh:Meneruskan Alamat ke Fungsi

#include <stdio.h>
void swap(int *n1, int *n2);

int main()
{
    int num1 = 5, num2 = 10;

    // address of num1 and num2 is passed
    swap( &num1, &num2);

    printf("num1 = %d\n", num1);
    printf("num2 = %d", num2);
    return 0;
}

void swap(int* n1, int* n2)
{
    int temp;
    temp = *n1;
    *n1 = *n2;
    *n2 = temp;
}

Saat Anda menjalankan program, outputnya adalah:

num1 = 10
num2 = 5

Alamat num1 dan num2 diteruskan ke swap() fungsi menggunakan swap(&num1, &num2); .

Pointer n1 dan n2 terima argumen ini dalam definisi fungsi.

void swap(int* n1, int* n2) {
    ... ..
}

Kapan *n1 dan *n2 diubah di dalam swap() fungsi, num1 dan num2 di dalam main() fungsi juga berubah.

Di dalam swap() fungsi, *n1 dan *n2 ditukar. Oleh karena itu, num1 dan num2 juga ditukar.

Perhatikan bahwa swap() tidak mengembalikan apa pun; tipe pengembaliannya adalah void .


Contoh 2:Mengirim Pointer ke Fungsi

#include <stdio.h>

void addOne(int* ptr) {
  (*ptr)++; // adding 1 to *ptr
}

int main()
{
  int* p, i = 10;
  p = &i;
  addOne(p);

  printf("%d", *p); // 11
  return 0;
}

Di sini, nilai disimpan di p , *p , awalnya 10.

Kami kemudian melewati pointer p ke addOne() fungsi. ptr pointer mendapatkan alamat ini di addOne() fungsi.

Di dalam fungsi, kami meningkatkan nilai yang disimpan di ptr dengan 1 menggunakan (*ptr)++; . Sejak ptr dan p pointer keduanya memiliki alamat yang sama, *p di dalam main() juga 11.


Bahasa C

  1. C# Kata Kunci dan Pengidentifikasi
  2. C# Bitwise dan Bit Shift Operator
  3. C# Kelas dan Objek
  4. C# kelas abstrak dan metode
  5. C# Kelas Parsial dan Metode Parsial
  6. C# kelas dan metode tersegel
  7. Lewati array ke fungsi di C
  8. C Pointer
  9. Hubungan Antara Array dan Pointer
  10. C struct dan Pointer