Rumah  >  Artikel  >  tutorial komputer  >  Pelaksanaan fungsi bahasa C yang ditulis menggunakan penunjuk

Pelaksanaan fungsi bahasa C yang ditulis menggunakan penunjuk

PHPz
PHPzke hadapan
2024-01-24 21:39:05997semak imbas

Pelaksanaan fungsi bahasa C yang ditulis menggunakan penunjuk

Tulis fungsi dalam bahasa C dan gunakan kaedah penunjuk untuk melaksanakan fungsi

int find(char* source/*source string*/, char* target/*substring*/)//Jika ditemui, kembalikan kedudukan dalam rentetan sumber Jika tidak ditemui, ia akan kembali -1 tukar untuk mencari dan pulangkan 1, tukar Pulangan i ditukar kepada pulangan 1;

{

int i,j;

int s_len=strlen(sumber);

int t_len=strlen(sasaran);

jika(t_len>s_len)

{

kembali -1;

}

untuk(i=0;i

{

j=0;

int bendera=1;

jika(sumber[i]==sasaran[j])

{

int k,p=i;

untuk(k=0;k {

jika(sumber[p]==sasaran[j])

{

p++;

j++;

bersambung;

}

lain

{

bendera=0;

rehat;

}

}

}

lain

{

bersambung;

}

jika(bendera==1)

{

kembali i;

}

}

kembali -1;

}

Memprogram dengan penunjuk kepada fungsi

Penunjuk fungsi kadangkala sangat berguna Contohnya, mentakrifkan penunjuk fungsi dalam struktur boleh melaksanakan ciri yang serupa dengan fungsi ahli kelas C++ dalam bahasa C.

Atur cara berikut mentakrifkan tatasusunan penunjuk fungsi Mengikut baki nombor input (1 atau 0), fungsi yang sepadan boleh dipanggil tanpa jika lain.

// Input ialah nombor ganjil

kosongkan FuncOdd(int n)

{

apung i, nIterator = 0;

printf("Anda memasukkan nombor ganjil.n");

untuk (i = 1; i {

nIterator+=1/i;

}

printf("Dan hasilnya ialah: %fn",nIterator);

}

// Input ialah nombor genap

kosongkan FuncEven(int n)

{

apung i, nIterator = 0;

printf("Anda memasukkan nombor genap;n");

untuk (i = 2; i {

nIterator+=1/i;

}

printf("Dan hasilnya ialah: %fn",nIterator);

}

int main()

{

int nInput = 0; // Simpan nombor yang dimasukkan

void (*func[2])(int); // Tentukan penunjuk fungsi untuk menunjuk kepada dua fungsi berbeza

func[0] = FuncEven;

func[1] = FuncOdd;

printf("Sila masukkan nombor:"); // Dapatkan input daripada konsol

scanf("%d",&nInput);

(*func[nInput%2])(nInput); // Panggil fungsi yang sepadan berdasarkan nombor input

kembali 0;

}

Penggunaan penunjuk bahasa C

int atas tidak sepatutnya tergolong dalam kategori penunjuk, tetapi definisi pembolehubah biasa int ini bergantung pada cara ia digunakan Jika ia digunakan mengikut nombor negatif, 0, dan nombor positif, ia boleh dinilai ia digunakan sebagai kelas ini Pengecam definisi khas; jika pembolehubah ini ialah pembilang dalam gelung (bermaksud apabila bilangan gelung bertambah atau berkurang), anda boleh menentukan berapa kali gelung telah berjaya dilaksanakan

Reader ialah nama kelas, yang bermaksud kelas itu juga jenis data

Sama seperti int, ia adalah nama jenis data

Baca pembaca[Maxr]; bermaksud pembolehubah tatasusunan jenis ini mungkin ditakrifkan oleh makro

Mengapa ia boleh ditakrifkan seperti ini? Seharusnya kelas boleh mengandungi sebarang jenis data (sama seperti struct dalam c), termasuk kelas luaran

Atas ialah kandungan terperinci Pelaksanaan fungsi bahasa C yang ditulis menggunakan penunjuk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Mengapa komputer membeku?Artikel seterusnya:Mengapa komputer membeku?