sizeof array name 和 sizeof pointer
int main(void){ int a[5]={1,3,2,4,5};
array(a+2);
printf("%d %d\n",sizeof(a); //这里是数组大小=20
system("pause");
return 0;
}
void array(int x[])
{ *(x+3)=8;
printf("%d inside\n",sizeof x); //这里就只有4了
}
a传给array虽然是call by reference 但是它指向的是个数组啊 为什么长度就变成了一个指针的大小?
或者说 在 main() 里面 array 也是个指针啊 怎么就有20个长度呢?(这句话只是和上句话对比 它有20个长度好理解~~~)
先谢了