函数名本身就是这个函数的起始地址?为什么取函数名的地址后还是这个结果?解决思路
函数名本身就是这个函数的起始地址?为什么取函数名的地址后还是这个结果?
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void test()
{
printf("123456\n");
}
int main(int argc, char *argv[])
{
printf("0x%x\n",test);
printf("0x%x\n",&test);
}
[root@localhost pht]# ./a.out
0x8048328
0x8048328
我非常的困域
这两个printf的结果怎么会一样呢?求大侠解答
printf("0x%x\n",test);
printf("0x%x\n",&test);
------解决方案--------------------
C++ primer关于函数指针那章曾经写过
func 和 &func 其实是一回事
历史问题,习惯问题,写法问题,兼容问题
其实自己动脑想想,函数只存在入口地址概念,本身无取值的概念
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void test()
{
printf("123456\n");
}
int main(int argc, char *argv[])
{
printf("0x%x\n",test);
printf("0x%x\n",&test);
}
[root@localhost pht]# ./a.out
0x8048328
0x8048328
我非常的困域
这两个printf的结果怎么会一样呢?求大侠解答
printf("0x%x\n",test);
printf("0x%x\n",&test);
------解决方案--------------------
C++ primer关于函数指针那章曾经写过
func 和 &func 其实是一回事
历史问题,习惯问题,写法问题,兼容问题
其实自己动脑想想,函数只存在入口地址概念,本身无取值的概念