我有一个有char *
参数的函数 A。在A()
中,我sizeof
用来计算 buf 的大小,但我在 i686 机器中得到 8,在 armel 机器中得到 4。为什么不是128?片段如下:
void A(char *p)
{
printf("sizeof p is %d\n", sizeof(p));
}
int main(void)
{
char buf[128];
printf("sizeof buf is %d\n", sizeof(buf));
A(buf);
return 0;
}
结果是这样的(在 i686 中):
sizeof buf is 128
sizeof p is 8
请告诉我原因。