假設我有char **argv
。雙指針字符操作
首先,我如何打印出argv
中的所有字符串?我試過如下:
char *temp;
temp = *argv; // Now points to the first string?
while (temp != NULL) {
printf("%s ", temp);
temp++;
}
在這裏,當temp
遞增,僅跳過一個字符。爲什麼會發生?我知道argv
是一個擁有積分的數組。每個指針指向一個數組char*
。如果是這樣,爲什麼這不起作用?我知道因爲temp
是char
類型,遞增該指針會使其增加1
char(或字節)。如果是這樣,我怎樣才能將指針增加到下一個數組中並將該字符串打印出來?
是否爲argv null的最後一個元素?我預計這將運行在數組的末尾。 – Collin 2012-03-25 13:58:11
@CollinHockey:是的,標準要求。參見C99標準的5.1.2.2.1。 – 2012-03-25 13:58:41
@Collin曲棍球:我會假設這是OP的流產嘗試,也是因爲看不到其他明顯的終止條件。奧利:OP沒有說我們正在處理標準的「主要」論點,但我們都假裝我們這樣做。 – 2012-03-25 13:58:52