我的老師給了我一個練習的更正,它包含使用雙指針的代碼。由於我對C相當陌生,因此很難理解代碼的作用。我知道單個指針的基礎知識,但不知何故,我在雙指針路由上迷失了方向。難以理解這段代碼如何工作(雙指針)
代碼:
#include <stdio.h>
main(int argc, char** argv){
printf("\nHello ");
char** runner = argv;
++runner;
while(*(runner+2) != 0){
**runner = toupper(**runner);
printf("%s, ",*runner);
++runner;
}
**runner = toupper(**runner);
printf("%s ",*runner);
++runner;
**runner = toupper(**runner);
printf("and %s!",*runner);
}
-The第一個問題我已經是理解爲什麼main函數使用了雙指針? - 第二個問題,初始化雙指針,跑步者後,它被告知指向一個地方。但是,如果它指向一個指針,而指針又指向一個你不知道的地方,你究竟怎麼知道它指向哪裏?
- 由於我有問題了解這兩件事情,我無法繼續,也不知道代碼如何進一步工作。
謝謝您的時間
哦,男孩怎麼寫這樣的代碼?我想我理解它,但它很安靜。 – rekire
這很簡單:'argv'是一個指針數組的指針,每個指針指向命令行參數的第一個字符。 – musicmatze
跑步者增加跳過第一個char *字符串,這通常是程序本身的一個路徑(雖然它可以是任意的,但蠕蟲可以) –