我想用下面的代碼,但沒有索引陣列「[] []」,並與指針使用指針通過的argv迭代[]
for (int i = 0; i < argc; i++) {
for (int j = 0; argv[i][j] != '\0'; j++) {
//code
}
}
我知道,你可以使用指針代替它遍歷一個數組,但我不確定如何在第二個數組中使用未定義的長度來完成這個操作,在這種情況下,輸入是字符串。由於argv []的每個元素可以有不同的長度,我想確保能夠正確讀取字符並知道argv []的每個元素何時結束,並且下一個開始。
我希望它是這樣的:(如果下面的頭主要是不對的,請告訴我)
int main(int argc, char **argv) {
for (int i = 0; i < argc; i++) {
while(argv != '\0') {
//code
*argv+1;
}
//to skip null character
argv+1;
}
}
你似乎認爲'argv'是連續的記憶塊。我不認爲這是一個安全的假設。 –
@CareyGregory - 是對的。你不能簡單地假定下一個元素正好在空字節之後。但是你可以放心地假設每個元素都具有相同的大小,因此假定元素是從'argv'到'argv + argc - 1'是安全的。 – alvits