使用此代碼:字符指針數組的大小從功能
#include <stdio.h>
void printSize(char *messages[]) {
printf("%d", sizeof(messages)/sizeof(char *));
}
int main(void) {
printf("Size when through passing direct to function: ");
printSize((char *[]){"Zero", "One", "Two", "Three"});
printf("\n");
printf("Size when calculating in main: %d\n", sizeof((char *[]){"Zero", "One", "Two", "Three"})/sizeof(char *));
return 1;
}
我得到的輸出:
Size when through passing direct to function: 1
Size when calculating in main: 4
我知道有沒有辦法讓一個char *數組元素的正確量,但我很好奇他們爲什麼會給出不同的結果。
數組衰變成指針。你在第一個例子中獲得指針的大小。 – Brian
這不是重複的。我在問爲什麼會給出不同的答案,而不是如何獲得數組中元素的數量。 – Jimmay