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'是一個運算符,而不是函數。 –