C++中的sizeof()函数给了我一个函数内部不同的大小,并在main中不同。任何想法为什么?sizeof()函数返回不同的大小
void createPacket(char packet[]){
int size = sizeof(packet);
printf("%d\n", size);
}
int main(){
char packet[PKTSIZE];
createPacket(packet);
int size = sizeof(packet);
printf("%d\n", size);
}
我期待
9
9
但即时得到
8
9
任何想法,为什么?
这是因为'char packet []'衰变为一个指针,所以你正在取一个指针的大小。 – Rapptz
'sizeof'是一个运算符,而不是函数。 –