难道是小甲鱼老师讲错了?
本帖最后由 sswy 于 2019-5-13 20:57 编辑int dwy(int);
int dwy(int a)
{
return a * a;
}
int main()
{
int num = 2;
int (*p)(int);
p = &dwy;
(*p)(num);
}
函数指针,指向一个函数名,函数名即是函数地址.
我把dwy地址给p,但是p指向的并不是dwy的地址,小甲鱼老师不是说函数指针指向的是函数的地址吗?
本帖最后由 jackz007 于 2019-5-13 21:07 编辑
你写错了,p 指向 dwy() 表达为 p = dwy
下面的代码可以证明这种写法是正确的。
#include <stdio.h>
int dwy(int a)
{
return a * a ;
}
int main()
{
int num = 2 ;
int (*p)(int) ;
p = dwy ;
num = (* p)(num) ;
printf("num = %d\n" , num) ;
}
jackz007 发表于 2019-5-13 21:06
你写错了,p 指向 dwy() 表达为 p = dwy
下面的代码可以证明这种写法是正确的。
jackz007 发表于 2019-5-13 21:06
你写错了,p 指向 dwy() 表达为 p = dwy
下面的代码可以证明这种写法是正确的。
p=&dwy 还是 p=dwy我都实验过的,一样的和我判断, p这个形参指向的是一个0x00af13de的内存地址,而实际的dwy函数地址是0x00af5060 本帖最后由 jackz007 于 2019-5-13 22:07 编辑
sswy 发表于 2019-5-13 22:01
只要可以通过指针 p 调用这个函数 dwy() 不就说明问题了吗,你到底想证明什么? jackz007 发表于 2019-5-13 21:06
你写错了,p 指向 dwy() 表达为 p = dwy
下面的代码可以证明这种写法是正确的。
jackz007 发表于 2019-5-13 22:04
只要可以通过指针 p 调用这个函数 dwy() 不就说明问题了吗,你到底想证明什么?
不想证明什么老师,我学习,不懂得问下,谢谢你回答
页:
[1]