2
以下不編譯:C++ int main(int argc,char * argv []) - 是一個c風格的數組?
int main (int argc, char *argv[]) {
char arr[2][2];
char **ptr = arr;
return 0;
}
然而,以下的作用:
int main (int argc, char *argv[]) {
char **ptr = argv;
return 0;
}
因此,我會得出這樣的結論的argv不是交流式陣列,其被存儲爲存儲器的單個塊而是某種指針數組。有人可以證實嗎?
謝謝,並關心。
如果'argv'是一個數組數組,那麼內部數組的大小將是類型的一部分(並且它們都必須是相同的大小)。 –
'arr'衰變爲類型爲char(*)[2]'的數組的指針,這與指向類型爲char **的指針的指針不同。 – aschepler