指针

来源:互联网 发布:淘宝店铺重新激活 编辑:程序博客网 时间:2024/06/01 21:16
--------------------------------------------------------------------------------------指向一维函数的指针#include<stdio.h>#include<stdlib.h>int main(){ int as[3]={11,22,33}; int (*p)[3]=&as; printf("**p=%d\n",**p); printf("as[2]%d\n",*(*p+2)); printf("%x下一个单元格的首地址\n",*(p+1)); printf("as[2]%d\n",*(*(p+1)-1)); printf("as[1]%d\n",*(*p+1)); printf("as[1]%d\n",*(*(p+1)-2)); return 0;}--------------------------------------------------------------------------------------函数指针#include<stdio.h>#include<stdlib.h>void funa();void funb();void fund(void (*p)());void main(){ void (*p)(); p=&funa; (*p)(); p=&funb; (*p)(); fund(&funa); fund(&funb);}void funa(){ printf("void funa()\n");}void funb(){ printf("void funb()\n");}void fund(void (*p)()){ (*p)();}--------------------------------------------------------------------------------------------指向函数指针的指针#include<stdio.h>void funa();void funb();void fun(void (*)());void main(){ void (*pp)(void (*p)()); pp=&fun; (*pp)(&funa); (*pp)(&funb);}void funa(){ printf("void funa()\n");}void funb(){ printf("void funb()\n");}void fun(void (*p)()){ (*p)();}-------------------------------------------------------------------------------------------返回值为函数指针的函数#include<stdio.h>void funa();void funb();void (*funx(void (*p)()))();void main(){ void (*point)()=funx(&funa);//定义函数指针,void (*)()为类型 point为名字 (*point)(); point=funx(&funb); (*point)();}void funa(){ printf("void funa()\n");}void funb(){ printf("void funb()\n");}void (*funx(void (*p)()))()//函数参数是函数指针,返回类型为函数指针{ return p;}-------------------------------------------------------------------------------------------------------函数指针公司用法#include<stdio.h>typedef void (*pFun)();void funa();pFun funx(pFun p);void main(){ pFun p1=funx(&funa); (*p1)();}void funa(){ printf("void funa\n");}pFun funx(pFun p){ return p;}----------------------------------------------------------------------------综合#include<stdio.h>void funa()//输出{ printf("void funa()\n");}void funx(void (*p)())//参数为函数指针的函数{ (*p)();}void (*funxx(void (*p)()))()//返回值为函数指针的函数,参数为函数指针的函数{ return p;}void main(){ void (*point)();//定义一个函数指针 void (*pp)(void(*p)());//定义一个指向函数指针的指针,注意:要写函数参数 void (*p)()=&funa;//定义一个函数指针 (*p)(); //---------------------------------- funx(&funa);//直接调用参数为函数指针的函数    //---------------------------------- pp=&funx; (*pp)(&funa);//通过定义指向函数指针的指针调用 //---------------------------------- point=funxx(&funa);//通过定义指向函数指针,调用返回值为函数指针的函数 (*point)();}  


 

0 0
原创粉丝点击