函数指针和函数的地址
所以我想在制作函数指针时,你不需要operator &
获取初始函数的地址:
#include <stdio.h>double foo (double x){ return x*x;}int main () { double (*fun1)(double) = &foo; double (*fun2)(double) = foo; printf("%f\n",fun1(10)); printf("%f\n",fun2(10)); printf("fun1 = %p \t &foo = %p\n",fun1, &foo); printf("fun2 = %p \t foo = %p\n",fun2, foo); int a[10]; printf(" a = %p \n &a = %p \n",a,&a); return 0;}
输出:
>./a.out 100.000000100.000000fun1 = 0x4004f4 &foo = 0x4004f4fun2 = 0x4004f4 foo = 0x4004f4 a = 0x7fff26804470 &a = 0x7fff26804470
然后我意识到这对于数组也是如此,这意味着如果你有int a[10]
两个a
并&a
指向相同的位置。为什么这是数组和函数?地址是否保存在与其中保存的值(地址)具有相同地址的内存位置中?
暮色呼如
开满天机
繁华开满天机
相关分类