C Lulus Alamat dan Petunjuk ke Fungsi

Dalam tutorial ini, anda akan belajar menyampaikan alamat dan petunjuk sebagai hujah ke fungsi dengan bantuan contoh.

Dalam pengaturcaraan C, juga memungkinkan untuk menyampaikan alamat sebagai argumen ke fungsi.

Untuk menerima alamat ini dalam definisi fungsi, kita dapat menggunakan petunjuk. Ini kerana petunjuk digunakan untuk menyimpan alamat. Mari kita ambil contoh:

Contoh: Lulus Alamat ke Fungsi

 #include 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", num1); printf("num2 = %d", num2); return 0; ) void swap(int* n1, int* n2) ( int temp; temp = *n1; *n1 = *n2; *n2 = temp; )

Semasa anda menjalankan program, outputnya adalah:

 num1 = 10 num2 = 5

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

Penunjuk n1 dan n2 menerima argumen ini dalam definisi fungsi.

 void swap(int* n1, int* n2) (… ) 

Apabila * n1 dan * n2 diubah di dalam swap()fungsi, num1 dan num2 di dalam fungsi utama () juga diubah.

Di dalam swap()fungsi, *n1dan *n2bertukar. Oleh itu, num1 dan num2 juga ditukar.

Perhatikan bahawa swap()tidak mengembalikan apa-apa; jenis pulangannya adalah void.

Contoh 2: Menghantar Penunjuk ke Fungsi

 #include 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 yang disimpan pada p,, *padalah awalnya 10.

Kami kemudian meneruskan penunjuk p ke addOne()fungsi. Penunjuk ptr mendapat alamat ini dalam addOne()fungsi.

Di dalam fungsi, kami meningkatkan nilai yang disimpan pada ptr sebanyak 1 menggunakan (*ptr)++;. Oleh kerana penunjuk ptr dan p kedua mempunyai alamat yang sama, *pdi dalamnya main()juga 11.

Artikel menarik...