函数指针与指针的区别在哪里?

如题所述

指针是C语言的一种数据类型;
函数指针是C指针的一种。

问“函数指针与指针的区别在哪里?” 说明LZ对指针还不慎了解。修改一下你的问题:
“函数指针与整型指针的区别在哪里?”
这样的话,我就告诉你:
1. 二者都是指针
2. 函数指针里存放的是一个函数的首地址,而整型指针里放的是一个整型变量的地址;
3.指针本身是引用类型。所以使用时都要解除引用。函数指针与整型指针解除引用的方式不同。整型指针有两种方式解除引用:
如对整型指针pi:
int i = 0;
int *pi = &i;
解除引用方法一: *pi
解除引用方法二: pi[0]
对函数指针pf:
int f(int);
int (*pf)(int) = f ;
解除引用方法: pf(8);

整型指针解除引用方法二: pi[0]更像数组。也更像函数指针解除引用的方法,原因是:
数组名、和函数名 的本质都是地址。指针的本质也是地址。
4。从以上例子中看到赋值形式不同
函数指针 pf = f; (不用 &。其实用也一样)
整型指针 pi = &i;
原因是数组名、和函数名 的本质都是地址,而整型变量的本质(当作为左值【如果允许】或右值时)是地址里的值。
5. 对函数指针,一般不可以做递增操作 如:pf++ 99.9999%会崩溃
如果要访问函数阵列,需要使用函数指针数组
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-13
要说区别的话,就是指向的东西不一样,程序由两部分组成,数据和指令,而普通的指针指向的是数据,而函数指针指向的你可以理解为指令,本质都是指针,只是指向的东西不一样而已。
第2个回答  2012-05-12
没什么区别,就是表示方法有所不同。
第3个回答  2012-05-12
函数指针就是指向函数的指针呗
相似回答
大家正在搜