Anu*_*dav -1 c function-pointers function sizeof implicit-conversion
以下是程序的文本:
#include <stdio.h>
int f(int x){
return x+1;
}
int main() {
int (*p)(int) = f;
printf( "%d\n", sizeof(p) );
printf( "%d\n", sizeof(f) );
}
Run Code Online (Sandbox Code Playgroud)
该图像与 C 代码相关,我的问题仅针对 C。
这f是函数的名称,并且p是指向该函数的指针f。
由于p最终是一个地址,因此根据地址总线的大小,输出结果sizeof(p)为真,这完全没问题。
这里f也是指向函数f。所以最终f也是一个地址。
我的主要问题是为什么 的输出sizeof(f)不是8,为什么是1以及如何是1?