函數(shù)指針(Function Pointer):
- 定義: 函數(shù)指針是指向函數(shù)的指針,它存儲(chǔ)了函數(shù)的地址。函數(shù)的二制制代碼存放在內(nèi)存四區(qū)中的代碼段,函數(shù)的地址它在內(nèi)存中的開始地址。如果把函數(shù)的地址作為參數(shù),就可以在函數(shù)中靈活的調(diào)用其它函數(shù)。
- 用途: 函數(shù)指針可以用來在運(yùn)行時(shí)動(dòng)態(tài)選擇調(diào)用哪個(gè)函數(shù),或者將函數(shù)作為參數(shù)傳遞給其他函數(shù)。
使用函數(shù)指針的三個(gè)步驟:
????????a)聲明函數(shù)指針;
????????b)讓函數(shù)指針指向函數(shù)的地址;
????????C)通過函數(shù)指針調(diào)用函數(shù)。
?
// 聲明一個(gè)函數(shù)指針
int (*add)(int, int);
// 將函數(shù)地址賦給函數(shù)指針
add = ∑
// 使用函數(shù)指針調(diào)用函數(shù)
int result = add(3, 4);
????????回調(diào)函數(shù)是一種在編程中常見的概念,它是指一個(gè)函數(shù)作為參數(shù)傳遞給另一個(gè)函數(shù),并在特定事件發(fā)生時(shí)被調(diào)用。
void show(void (*pf)()){
pf();
}
void zs(){
cout << "我是大爸爸"<<endl;
}
void ls(){
cout << "我是小爸爸"<<endl;
}
int main(){
show(zs);
show(ls);
}
傳參方式1:
void show(void (*pf)(int)){
int c =0;
pf(c);
}
void zs(int a){
cout << "我是大爸爸"<<endl;
}
void ls(int b){
cout << "我是小爸爸"<<endl;
}
int main(){
show(zs);
show(ls);
}
傳參方式1:
void show(void (*pf)(int),int c){
pf(c);
}
void zs(int a){
cout << "我是大爸爸"<<endl;
}
void ls(int b){
cout << "我是小爸爸"<<endl;
}
int main(){
int c=0;
show(zs,c);
show(ls,c);
}
指針函數(shù)
????????指針函數(shù)是指返回類型為指針的函數(shù)。它與一般的函數(shù)不同,因?yàn)樗姆祷刂凳且粋€(gè)指針,而不是基本數(shù)據(jù)類型或結(jié)構(gòu)體。
指針函數(shù)的使用場(chǎng)景可能包括:
動(dòng)態(tài)內(nèi)存分配: 返回指向動(dòng)態(tài)分配內(nèi)存的指針,允許在堆上分配內(nèi)存。
返回?cái)?shù)組或字符串: 返回指向數(shù)組或字符串的指針,這在處理字符串或數(shù)組時(shí)很有用。文章來源:http://www.zghlxwxcb.cn/news/detail-810047.html
函數(shù)指針返回類型: 在某些情況下,函數(shù)指針也可以被認(rèn)為是一種指針函數(shù)。函數(shù)指針指向函數(shù)而不是數(shù)據(jù),但它們的返回類型是指針。文章來源地址http://www.zghlxwxcb.cn/news/detail-810047.html
#include <iostream>
// 定義一個(gè)指針函數(shù),返回整數(shù)指針
int* createInteger() {
int* ptr = new int; // 在堆上分配內(nèi)存
*ptr = 42; // 設(shè)置指針指向的值
return ptr; // 返回指針
}
int main() {
// 調(diào)用指針函數(shù),得到一個(gè)整數(shù)指針
int* result = createInteger();
// 使用指針指向的值
std::cout << "Value created by pointer function: " << *result << std::endl;
// 記得釋放在堆上分配的內(nèi)存
delete result;
return 0;
}
到了這里,關(guān)于函數(shù)指針和回調(diào)函數(shù) 以及指針函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!