如何以有效的方式迭代我的文件變量?如何迭代字符指針數組
我應該添加NULL作爲我的最後一個值,還是做別的?
char *files[] =
{
"c1.txt",
"r1.txt",
"t2.c",
"d.cpp",
};
如何以有效的方式迭代我的文件變量?如何迭代字符指針數組
我應該添加NULL作爲我的最後一個值,還是做別的?
char *files[] =
{
"c1.txt",
"r1.txt",
"t2.c",
"d.cpp",
};
有幾種可能性。
NULL
的最後一項,你建議自己sizeof(files)/sizeof(char*)
。但是請注意,如果數組作爲**參數**傳遞給函數,則數組參數會衰減爲指針,並且您不能再在函數中使用'sizeof files/sizeof * files'。 (我知道你知道,這是爲OP) –
你也可以這樣定義
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
...
int i;
for(i = 0; i < ARRAY_SIZE(files); i++)
{
printf("%s\n", files[i]);
}
這個宏應該爲任何類型的陣列的工作,不管類型如何。
你可以,是的。 (但我會添加NULL,而不是'NULL')。或者你可以記住,這裏的這個列表有4個條目。或者你使用'sizeof(files)/ sizeof(char *)'。等等 –
你真正的問題是什麼? –
假設通過「解析」你的意思是「迭代」,是的,那是一種選擇。這真的是你的問題嗎? – WhozCraig