Bahasa C
Dalam tutorial ini, kita akan belajar tentang panggilan C++ dengan referensi untuk meneruskan pointer sebagai argumen ke fungsi dengan bantuan contoh.
Dalam tutorial Fungsi C++, kita belajar tentang meneruskan argumen ke suatu fungsi. Metode yang digunakan ini disebut passing by value karena nilai sebenarnya yang dilewatkan.
Namun, ada cara lain untuk meneruskan argumen ke fungsi di mana nilai sebenarnya dari argumen tidak diteruskan. Sebagai gantinya, referensi ke nilai dilewatkan.
Misalnya,
// function that takes value as parameter
void func1(int numVal) {
// code
}
// function that takes reference as parameter
// notice the & before the parameter
void func2(int &numRef) {
// code
}
int main() {
int num = 5;
// pass by value
func1(num);
// pass by reference
func2(num);
return 0;
}
Perhatikan &
di void func2(int &numRef)
. Ini menunjukkan bahwa kita menggunakan alamat variabel sebagai parameter kita.
Jadi, ketika kita memanggil func2()
fungsi di main()
dengan melewatkan variabel num sebagai argumen, kita sebenarnya melewatkan alamat num variabel, bukan nilai 5 .
#include <iostream>
using namespace std;
// function definition to swap values
void swap(int &n1, int &n2) {
int temp;
temp = n1;
n1 = n2;
n2 = temp;
}
int main()
{
// initialize variables
int a = 1, b = 2;
cout << "Before swapping" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
// call function to swap numbers
swap(a, b);
cout << "\nAfter swapping" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
return 0;
}
Keluaran
Before swapping a = 1 b = 2 After swapping a = 2 b = 1
Dalam program ini, kami melewatkan variabel a dan b ke swap()
fungsi. Perhatikan definisi fungsi,
void swap(int &n1, int &n2)
Di sini, kami menggunakan &
untuk menunjukkan bahwa fungsi akan menerima alamat sebagai parameternya.
Oleh karena itu, kompiler dapat mengidentifikasi bahwa alih-alih nilai aktual, referensi variabel diteruskan ke parameter fungsi.
Dalam swap()
fungsi, parameter fungsi n1 dan n2 menunjuk ke nilai yang sama dengan variabel a dan b masing-masing. Oleh karena itu pertukaran terjadi pada nilai aktual.
Tugas yang sama dapat dilakukan dengan menggunakan pointer. Untuk mempelajari tentang pointer, kunjungi C++ Pointer.
#include <iostream>
using namespace std;
// function prototype with pointer as parameters
void swap(int*, int*);
int main()
{
// initialize variables
int a = 1, b = 2;
cout << "Before swapping" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
// call function by passing variable addresses
swap(&a, &b);
cout << "\nAfter swapping" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
return 0;
}
// function definition to swap numbers
void swap(int* n1, int* n2) {
int temp;
temp = *n1;
*n1 = *n2;
*n2 = temp;
}
Keluaran
Before swapping a = 1 b = 2 After swapping a = 2 b = 1
Di sini, kita bisa melihat outputnya sama seperti contoh sebelumnya. Perhatikan barisnya,
// &a is address of a
// &b is address of b
swap(&a, &b);
Di sini, alamat variabel dilewatkan selama pemanggilan fungsi daripada variabel.
Karena alamat yang diberikan alih-alih nilai, operator dereferensi *
harus digunakan untuk mengakses nilai yang disimpan di alamat tersebut.
temp = *n1;
*n1 = *n2;
*n2 = temp;
*n1
dan *n2
memberikan nilai yang disimpan di alamat n1 dan n2 masing-masing.
Sejak n1 dan n2 berisi alamat a dan b , apapun dilakukan untuk *n1
dan *n2 akan mengubah nilai sebenarnya dari a dan b .
Oleh karena itu, ketika kami mencetak nilai a dan b di main()
fungsi, nilainya diubah.
Bahasa C
Petunjuk C++ Dalam tutorial ini, kita akan belajar tentang pointer di C++ dan cara kerjanya dengan bantuan contoh. Dalam C++, pointer adalah variabel yang menyimpan alamat memori dari variabel lain. Alamat di C++ Jika kita memiliki variabel var dalam program kami, &var akan memberi kita alamatnya
Penunjuk dan Array C++ Dalam tutorial ini, kita akan belajar tentang hubungan antara array dan pointer dengan bantuan contoh. Dalam C++, Pointer adalah variabel yang menyimpan alamat dari variabel lain. Pointer tidak hanya dapat menyimpan alamat variabel tunggal, tetapi juga dapat menyimpan alamat
Warisan C++ Dalam tutorial ini, kita akan belajar tentang pewarisan dalam C++ dengan bantuan contoh. Pewarisan adalah salah satu fitur utama pemrograman berorientasi objek di C++. Ini memungkinkan kita untuk membuat kelas baru (kelas turunan) dari kelas yang ada (kelas dasar). Kelas turunan mewari
Halo semuanya, Dalam posting blog ini kita akan menjelajahi tipe data sederhana dan kompleks di C++ dan PLCnext Engineer. Ini akan berisi dua bagian berbeda, latihan sederhana dan kompleks. Tutorial ini mengasumsikan Anda memiliki beberapa pengalaman dengan C++ dan PLCnext Engineer. mulai Pertam