首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

对一个函数符号取地址,解引述

2013-11-29 
对一个函数符号取地址,解引用?//////void foo(){}int main(){cout foo endlcout &foo endlcout

对一个函数符号取地址,解引用?
//////
void foo()
{}

int main()
{
cout <<foo <<endl;
cout <<&foo <<endl;
cout <<*foo <<endl;

return 0;
}
//////
三行都输出同一个值。
有人能解释一下三者的语义么?
[解决办法]
都表示函数的首地址,编译器都告诉你了。也许编译器就是这么设计的,对函数名取地址和解引用或者直接使用函数名都表示函数的地址
[解决办法]
对于数组 & 没什么特殊的 和普通变量一样 得到一个指向这个[数组/普通变量]的指针
对于函数也一样 & 得到一个指向这个函数的指针 

[解决办法]

引用:
多谢 1 楼,我知道对于数组, c 语言有对其 ”取地址“ 特殊处理,但是函数签名还没找到确切资料。


维基百科
http://zh.wikipedia.org/wiki/C99#C99
另一个运算符 &,叫做取地址运算符,它将返回一个变量、数组或函数的存储地址。

资料,这个估计是从C99里翻译来的,自己去找找看吧...
[解决办法]
引用:
引用:
多谢 1 楼,我知道对于数组, c 语言有对其 ”取地址“ 特殊处理,但是函数签名还没找到确切资料。

维基百科 http://zh.wikipedia.org/wiki/C99#C99
另一个运算符 &amp;,叫做取地址运算符,它将返回一个变量、数组或函数的存储地址。

资料,这个估计是从C99里翻译来的,自己去找找看吧...

+1,自己可以google试试
[解决办法]
C语言规定函数名会被转换为指向这个函数的指针,除非这个函数名作为 & 操作
[解决办法]
对函数名而言,& 和 * 以及函数名本身是相同的
[解决办法]
对函数名取地址, 把他赋值函数指针后 在强转成 unsigned int, 这种方法应该可行

热点排行